Python中怎么對(duì)時(shí)間進(jìn)行處理,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
成都創(chuàng)新互聯(lián)長(zhǎng)期為上千余家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為坪山企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè),坪山網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
## time ##
# time.time
time模塊中時(shí)間的表示是以時(shí)間戳的形式,時(shí)間戳就是一種時(shí)間的計(jì)數(shù)方法,不用去糾結(jié)。然后我們看一下,time模塊中需要學(xué)習(xí)的方法。
import time
now = time.time()
print now
# 1496065442.08
首先可以使用time.time方法查看當(dāng)前時(shí)間,結(jié)果他返回的是十四億九千六百零六萬(wàn)五千四百四十四.零八。這表示什么,我想看下幾點(diǎn)了, 你給我顯示這個(gè)?!別急,time模塊的計(jì)數(shù)方法是以1970年1月1日12點(diǎn)為計(jì)數(shù)起點(diǎn),就是0.然后每過(guò)1秒就加1.所以剛才哪個(gè)是十四億多,過(guò)去的四十多年的時(shí)間的以秒來(lái)計(jì)就這么多。
那這個(gè)有什么用呢,我嫌的沒(méi)事,數(shù)過(guò)去有多少秒?其實(shí)這個(gè)方法是比較常用的,一般用在計(jì)算程序的運(yùn)行時(shí)間上,比如:
start_time = time.time()
one_plus = range(100)
for x in one_plus:
z = x + 100
print time.time() - start_time
# 0.000999927520752
而計(jì)算程序時(shí)間的好處是什么呢? 時(shí)間就是生命,時(shí)間就是金錢(qián)?。‘?dāng)我們發(fā)現(xiàn)我們的開(kāi)發(fā)的算法,變得異常的慢的時(shí)候,是不是應(yīng)該考慮程序哪里是不是出了問(wèn)題。還有在訓(xùn)練算法的時(shí)候,有意識(shí)的計(jì)算一下每一個(gè)epoch的運(yùn)行時(shí)間,可以分析一下,整個(gè)程序運(yùn)行完需要多少時(shí)間。
# time.ctime(), time.localtime()
c_time = time.ctime()
print c_time
# Mon May 29 21:58:26 2017
local_time = time.localtime()
print local_time
# time.struct_time(tm_year=2017, tm_mon=5,
tm_mday=29, tm_hour=21, tm_min=58, tm_sec=26,
tm_wday=0, tm_yday=149, tm_isdst=0)
localtime()返回的是當(dāng)?shù)貢r(shí)間,包括年份,月份,日期,小時(shí),分鐘,秒,星期幾,由0-6依次表示星期一到星期天。tm_yday表示一年中的第多少天,最后一個(gè)表示是不是夏令時(shí),0表示否。
# time.strftime和time.strptime
strftime是一個(gè)常用的方法,用來(lái)格式化輸出時(shí)間,格式化輸出的意思是按照給定的格式來(lái)輸出時(shí)間。當(dāng)然這個(gè)格式也不是由你自己隨便給格式,要符合Python的格式。strftime可以把time類(lèi)型的時(shí)間,轉(zhuǎn)化為str字符型。而striptime剛好相反,是把字符型的時(shí)間,轉(zhuǎn)換為時(shí)間類(lèi)型。看個(gè)栗子
import time
print time.strftime("%Y_%M_%d_%H_%M_%S")
# 2017_16_29_22_16_13
print time.strptime('2017-5-29', '%Y-%M-%d')
# time.struct_time(tm_year=2017, tm_mon=1, tm_mday=29,
tm_hour=0, tm_min=5, tm_sec=0, tm_wday=6, tm_yday=29,
tm_isdst=-1)
print time.strptime("2017_5_29.22:21:45",
"%Y_%m_%d.%H:%M:%S")
# time.struct_time(tm_year=2017, tm_mon=5,
tm_mday=29, tm_hour=22, tm_min=21, tm_sec=45,
tm_wday=0, tm_yday=149, tm_isdst=-1)
## datetime ##
# datetime.datetime, datetime.now, datetime. strftime
datetime返回的是我們見(jiàn)的比較多的輸出形式,now可以獲得現(xiàn)在的日期,strfttime就是格式化輸出的函數(shù),它適合time類(lèi),也適合datetime類(lèi)。然后我們對(duì)比一下不同的格式所對(duì)應(yīng)的輸出的區(qū)別,這里基本把所有可能的輸出都包括了,剩下的就是自己可以隨意組合。主要區(qū)別在于大小寫(xiě),以及不同字母表示的意義。這個(gè)沒(méi)必要記哈,我覺(jué)得,找一個(gè)自己看著順眼的輸出格式,然后每次用的時(shí)候,就用那個(gè)就行了。
from datetime import datetime
now = datetime.now()
# # print
print now.strftime("%Y")
print now.strftime("%Y_%B")
print now.strftime("%Y_%B_%d")
print now.strftime("%Y_%B_%d.%H")
print now.strftime("%Y_%B_%d.%H_%M")
print now.strftime("%Y_%B_%d.%H_%M_%S")
# 2017
# 2017_May
# 2017_May_29
# 2017_May_29.22
# 2017_May_29.22_30
# 2017_May_29.22_30_26
from datetime import datetime
now = datetime.now()
# # print
print now.strftime("%y")
print now.strftime("%y_%m")
print now.strftime("%y_%m_%d")
print now.strftime("%y_%m_%d.%I")
print now.strftime("%y_%m_%d.%I_%m")
print now.strftime("%y_%m_%d.%I_%m_%f")
# 17
# 17_05
# 17_05_29
# 17_05_29.10
# 17_05_29.10_05
# 17_05_29.10_05_562000 # 毫秒輸出
看完上述內(nèi)容,你們掌握Python中怎么對(duì)時(shí)間進(jìn)行處理的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!