獲取到時(shí)間也是我們?cè)趯W(xué)習(xí)python遇到的常見(jiàn)問(wèn)題,根據(jù)不同的需求,獲取的方式也有所不同,下面針對(duì)獲取的幾個(gè)場(chǎng)景,給大家整理出來(lái)幾個(gè)方式。
一、時(shí)間日期基本介紹
時(shí)間日期類型在Python中主要有兩個(gè)模塊:time模塊和datetime模塊
time模塊:是基于UnixTimestamp(時(shí)間戳)實(shí)現(xiàn)的,所能表述的范圍被限定在1970-2038年之間;
時(shí)間戳:是指格林尼治時(shí)間1970年01月01日00時(shí)00分00秒起至現(xiàn)在的總秒數(shù),結(jié)果是一個(gè)浮點(diǎn)數(shù)。
二、時(shí)間日期類型--time模塊
1.獲取當(dāng)前時(shí)間戳
print(time.time())
示例:獲取一個(gè)程序執(zhí)行了多少秒
importtime
start_time=time.time()
sum=0
foriinrange(1000000):
sum+=i
end_time=time.time()
print("程序執(zhí)行了%f秒"%(end_time-start_time))
輸出結(jié)果:
程序執(zhí)行了0.128733秒
2.將時(shí)間戳轉(zhuǎn)化為標(biāo)準(zhǔn)時(shí)間日期格式
通過(guò)時(shí)間元組進(jìn)行轉(zhuǎn)換,使用time.localtime(時(shí)間戳)把獲取的時(shí)間戳轉(zhuǎn)為當(dāng)?shù)氐臅r(shí)間元組,使用time.gmtime(時(shí)間戳)把獲取的時(shí)間戳轉(zhuǎn)為格林尼治時(shí)間元組;如果不加參數(shù),默認(rèn)為當(dāng)前時(shí)間戳。
importtime
time_tuple=time.localtime(time.time())
print("當(dāng)前時(shí)間為{}年{}月{}日{(diào)}點(diǎn){}分{}秒".format(time_tuple[0],time_tuple[1],time_tuple[2],time_tuple[3],time_tuple[4],time_tuple[5]))
3.格式化時(shí)間
(1)以(RPC)標(biāo)準(zhǔn)時(shí)間格式輸出時(shí)間
time.asctime(time.localtime())#參數(shù)為時(shí)間元組
time.ctime(time.time())#參數(shù)為浮點(diǎn)數(shù)時(shí)間戳
輸出結(jié)果:ThuJun2510:31:482020
(2)以time.strftime()格式化時(shí)間
#格式化成2020-06-2511:18:29形式
print(time.strftime("%Y-%m-%d%H:%M:%S",time.localtime()))
#格式化成ThuJun2511:18:292020形式
print(time.strftime("%a%b%d%H:%M:%S%Y",time.localtime()))
注意:strftime語(yǔ)句中時(shí)間格式化符號(hào)中是不能包含中文的,如果想輸出中文,還是通過(guò)上面%語(yǔ)句輸出或者format格式輸出。
三、time模塊案例演示
示例:2008年8月8日,20:08:08往后88,888,888秒是哪天?星期幾?
importtime
#time.mktime()方法可以把時(shí)間元組轉(zhuǎn)為時(shí)間戳
tuple01=(2008,8,8,20,8,8,0,0,0)
#待求時(shí)間戳
time01=time.mktime(tuple01)+88888888
#待求時(shí)間元組
tuple02=time.localtime(time01)
#打印結(jié)果
print("結(jié)果:",time.strftime("%Y-%m-%d%H:%M:%S",tuple02),end="\t")
tuple_week=("星期一","星期二","星期三","星期四","星期五","星期六","星期天")
print(tuple_week[tuple02[6]])
輸出結(jié)果:
結(jié)果:2011-06-0315:29:36星期五
四、datetime模塊基本使用
1.date類
獲取今天的日期
date01=datetime.date.today()
返回的結(jié)果是2020-06-26可以對(duì)年、月、日各個(gè)屬性單獨(dú)訪問(wèn):
print("年份",date01.year)
print("月份",date01.month)
print("日期",date01.day)
2.time類
time類可以直接定義當(dāng)前的時(shí)間,精確到微秒
time01=datetime.time(8,23,2,121212)
可以對(duì)時(shí)、分、秒、微秒各個(gè)屬性單獨(dú)訪問(wèn):
print("時(shí)",time01.hour)
print("分",time01.minute)
print("秒",time01.second)
print("微秒",time01.microsecond)
3.datetime類
獲取日期和時(shí)間(年份、月份、日期、時(shí)分、秒、微秒、時(shí)區(qū))
datetime01=datetime.datetime.now()
五、datetime基本使用
1.獲取當(dāng)前時(shí)間
fromdatetimeimportdatetime
print(datetime.now())#獲取當(dāng)前日期時(shí)間
print(datetime.today())#獲取當(dāng)前時(shí)間
print(datetime.utcnow())#獲取當(dāng)前的格林尼治時(shí)間
輸出結(jié)果:
2020-06-2616:35:43.928699
2020-06-2616:35:43.928732
2020-06-2608:35:43.928741
2.獲取當(dāng)前日期時(shí)間的日期和時(shí)間
fromdatetimeimportdatetime
dt01=datetime.today()
print(dt01.date())
print(dt01.time())
輸出結(jié)果:
2020-06-26
16:35:43.929583
獲取日期時(shí)間的年、月、日、時(shí)、分、秒、微秒
fromdatetimeimportdatetime
dt01=datetime.today()
print(dt01.year)
print(dt01.month)
print(dt01.day)
print(dt01.hour)
print(dt01.minute)
print(dt01.second)
print(dt01.microsecond)
輸出結(jié)果:
2020
6
26
16
35
43
929583
以上內(nèi)容為大家介紹了python獲取當(dāng)前時(shí)間日期有哪些方法?希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。