Python學習筆記09——時間操作

1.time模塊

操作如下:

import time

#。time()獲取時間戳
print(time.time())#當前時間戳

#.localtime(timestamp)獲取結構形式時間(本地時區)
print(time.localtime())#當前時間的struct_ time形式
print(time.localtime(0))#時間戳爲0的struct_time形式
print(time.localtime().tm_year)#獲取當前年度

#.gmtime(timestamp)獲取0時區結構時間  ,傳入參數爲時間戳,默認爲當前時間戳
print(time.gmtime())
print(time.gmtime(0))

#########https://www.cnblogs.com/tianyiliang/p/7789185.html參考
#通過strptime(string,format)確認本地格式某一天對應的struct_time,從而可以簡單獲取星期和天數
struct_time=time.strptime("2020年6月11日22點32分42秒","%Y年%m月%d日%H點%M分%S秒")
print(struct_time)
#通過strftime(format,struct_time)將已知的struct_time轉化爲格式化形式
# print(time.strftime("%Y年%m月%d日%H點%M分%S秒", time.localtime()))
#上一句會報錯,UnicodeEncodeError: 'locale' codec can't encode character '\u5e74' in position 2: encoding error
#無法解析漢字的編碼,可以通過如下方式解決
print(time.strftime("%Y{y}%m{m}%d{d}%H{h}%M{M}%S{s}", time.localtime()).format(y="年", m="月", d="日", h="點", M="分", s="秒"))

#asctime(struct_time)轉換爲標準格式時間
print(time.asctime(time.localtime()))
#ctime(timeStamp)將時間戳轉化爲標準格式時間
print(time.ctime(time.time()))

#sleep(int)進行休眠操作
#clock()返回兩次clock之間的時間,第一次調用時計時程序頭到調用用時的時間
#clock()在3.3中已被取代,time.perf_counter()   time.process_time()
#time.perf_counter()從程序開始一直計時,不會重置
#time.process_time()同樣會不會重置,但是此方法不會計入休眠sleep()時間,只計算

time.sleep(5)
print(time.perf_counter())
print(time.process_time())
time.sleep(5)
print(time.perf_counter())
print(time.process_time())

結果如下:

D:\python\python.exe D:/python/Pylearning/day04/Test01.py
1591965523.155573
time.struct_time(tm_year=2020, tm_mon=6, tm_mday=12, tm_hour=20, tm_min=38, tm_sec=43, tm_wday=4, tm_yday=164, tm_isdst=0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
2020
time.struct_time(tm_year=2020, tm_mon=6, tm_mday=12, tm_hour=12, tm_min=38, tm_sec=43, tm_wday=4, tm_yday=164, tm_isdst=0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
time.struct_time(tm_year=2020, tm_mon=6, tm_mday=11, tm_hour=22, tm_min=32, tm_sec=42, tm_wday=3, tm_yday=163, tm_isdst=-1)
20200612203843秒
Fri Jun 12 20:38:43 2020
Fri Jun 12 20:38:43 2020
5.0584455
0.078125
10.0585813
0.078125

注意事項:
1.兩條操作流程
timestamp→struct_time→日常使用形式日期:time()→localtime()→striftime()
日常使用形式日期→struct_time→timestamp:
striptime()→mktime()
2.striftime()自定義格式化時不支持漢字,可以用如下方法解決:

time.strftime("%Y{y}%m{m}%d{d}%H{h}%M{M}%S{s}", time.localtime()).format(y="年", m="月", d="日", h="點", M="分", s="秒")

3.clock()方法在3.3之後被取代,
#time.perf_counter()從程序開始一直計時,不會重置
#time.process_time()同樣會不會重置,但是此方法不會計入休眠sleep()時間,只計算CPU時間

4.參考鏈接:https://blog.csdn.net/mingming20547/article/details/93471464
https://www.cnblogs.com/tianyiliang/p/7789185.html

2.datetime模塊

操作演示:

import datetime

#############date對象
#1.date()的構造函數
# 傳入三個int數,分別爲年份,月份,日。
import time

print(datetime.date(2018, 1, 1))

#2.today()方法,返回當天日期
print(datetime.date.today())

#3.weekday()方法,返回日期對應星期(0,1,2,3,4,5,6對應星期一、2、3、4、5、6、7)
print(datetime.date(2018,1,2).weekday())

#4.isoformat()方法,返回ISO格式日期,直接打印就是調用此方法
print(datetime.date(2018, 1, 1).isoformat())

#5.striftime(formatString)方法,可以將返回目的格式的日期,同樣用format語句處理漢字問題
print(datetime.date(2018, 1, 1).strftime("%Y{y}%m{m}%d{d}").format(y="年", m="月", d="日"))



##########time對象
#1.time()構造函數可以傳入時、分、秒、微妙等,都是可選參數
print(datetime.time(hour=8, minute=20, second=20))

#2.isoformat()方法返回標準格式,直接打印就調用這個方法
print(datetime.time(8, 20, 20).isoformat())

#3.striftime(formatString)返回自定義格式時間
print(datetime.time(8, 20, 20).strftime("%H{H}%M{M}%S{S}").format(H="點", M="分", S="秒"))

#########datetime對象(date和time對象的結合體)
#1.構造函數datetime(),必參數:年、月、日   其它爲可選參數
print(datetime.datetime(2018, 1, 1, 8, 20, 20))

#2.today()返回一個本地時間的datetime對象
#.now()也會返回
print(datetime.datetime.now())
print(datetime.datetime.today())


#3.fromtimestamp(timestamp)根據時間戳創建一個datetime對象
print(datetime.datetime.fromtimestamp(time.time()))

#4.date()方法獲取date對象,time()方法獲取time對象
print(datetime.datetime.today().date())
print(datetime.datetime.today().time())

#5.strftime(formatString)自定義格式化
print(datetime.datetime.today().strftime("%Y{Y}%m{m}%d{d}%H{H}%M{M}%S{S}").format(Y="年", m="月", d="日", H="點", M="分",
                                                                                   S="秒"))

運行結果:

2018-01-01
2020-06-12
1
2018-01-01
2018010108:20:20
08:20:20
0820202018-01-01 08:20:20
2020-06-12 20:57:43.843346
2020-06-12 20:57:43.843347
2020-06-12 20:57:43.843347
2020-06-12
20:57:43.843347
20200612205743秒

Process finished with exit code 0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章