您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關datetime在python3時間中特殊使用的示例的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
像這樣datetime(2019,1,1, 0,0,0)聲明的一個對象是沒有時區信息的,每一個datetime對象都有一個tzinfo的屬性,而剛剛生成的這個對象的tzinfo是None。如果要聲明一個帶有時區信息的datetime對象需要先聲明一個時區, 而這個時區就是一個timezone對象,可以通過timedelta來完成構造
e8zone = timezone(timedelta(hours=8), 'Asia/Shanghai') d = datetime(2019,1,1, 0,0,0, tzinfo=e8zone) print(d)
而此時的輸出是
2019-01-01 00:00:00+08:00
可以看到和前面相比多出來了+08:00的信息表示東八區, 如果是一個沒有timezone的datetime對象,時區部分則不會輸出。
另外,你還可以定制化datetime對象的輸出
f = d.strftime("%Y-%m-%d %H:%M:%S.%f %Z") print(f)
此時,會輸出
2019-01-01 00:00:00.000000 Asia/Shanghai
此時,%Z輸出了文字形式的時區,如果想要類似+0800形式的時區格式,可以換成%z
時區不只是+8,-8這樣的,還有不規則的時區比如加拿大紐芬蘭的時區
e3mzone = timezone(timedelta(hours=-3, minutes=-30), 'Canada/Newfoundland') d = datetime.datetime(2019,1,1, 0,0,0, tzinfo=e3mzone) print(d)
會輸出
2019-01-01 00:00:00+08:00
而當我們替換時區時,默認的python包并不會自動轉換
e3mzone = timezone(timedelta(hours=-3, minutes=-30), 'Canada/Newfoundland') d = datetime.datetime(2019,1,1, 0,0,0, tzinfo=e3mzone) print(d) e8zone = timezone(timedelta(hours=8), 'Asia/Shanghai') d = d.replace(tzinfo=e8zone) print(d)
會輸出
2019-01-01 00:00:00-03:30 2019-01-01 00:00:00+08:00
感謝各位的閱讀!關于datetime在python3時間中特殊使用的示例就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。