真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python中pytz指的是什么-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線(xiàn)動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買(mǎi)多久送多久,劃算不套路!

成都創(chuàng)新互聯(lián)2013年開(kāi)創(chuàng)至今,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元資源做網(wǎng)站,已為上家服務(wù),為資源各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):18980820575

這篇文章主要介紹python中pytz指的是什么,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

pytz模塊常用于時(shí)區(qū)的轉(zhuǎn)換,常常配合datetime一起使用。我們知道datetime除了data方法生成的時(shí)間是沒(méi)有時(shí)區(qū)概念,其他如time、datetime等都是有時(shí)區(qū)概念,即指定了tzinfo信息。

>>> import datetime
>>> datetime.datetime.now(tz)
datetime.datetime(2009, 2, 21, 15, 12, 33, 906000, tzinfo=)
>>> datetime.datetime(2009, 2, 21, 15, 12, 33, tzinfo=tz)
datetime.datetime(2009, 2, 21, 15, 12, 33, tzinfo=)
>>> datetime.date(2009, 2, 21, tzinfo=tz)
Traceback (most recent call last):
File "", line 1, in 
TypeError: 'tzinfo' is an invalid keyword argument for this function
>>> datetime.time(15, 12, 33, tzinfo=tz)
datetime.time(15, 12, 33, tzinfo=)

時(shí)區(qū)轉(zhuǎn)換

·pytz.country_timezones(‘國(guó)家代碼’):此方法可以拿到某個(gè)國(guó)家的時(shí)區(qū)名列表。

>>>(pytz.country_timezones('cn')
['Asia/Shanghai', 'Asia/Urumqi']

·pytz.timezone(‘時(shí)區(qū)名’):此方法能獲取一個(gè)tzinfo對(duì)象,該對(duì)象可在datetime生成時(shí)間中以參數(shù)的形式放入,即可生成對(duì)應(yīng)時(shí)區(qū)的時(shí)間。

>>>utc = pytz.timezone('UTC')
>>>datetime.datetime.now(tz=utc)
2019-05-10 10:53:46.000929+00:00

實(shí)際上,現(xiàn)在時(shí)間為18:53:46

·查看有哪些時(shí)區(qū)

pytz有all_timezones、common_timezones這兩個(gè)屬性來(lái)查看有哪些時(shí)區(qū)。

from pytz import all_timezones,common_timezones

·時(shí)間按時(shí)區(qū)轉(zhuǎn)換

這要用到datetime模塊的astimezone方法來(lái)實(shí)現(xiàn)。如下所示,開(kāi)始生成本地時(shí)間,然后在轉(zhuǎn)成utc時(shí)間。

import datetime
import pytz
utc = pytz.timezone('UTC')
now_time = datetime.datetime.now()
utc_time = now_time.astimezone(tz=utc)
print(now_time,utc_time)
2019-05-10 19:02:53.499513 2019-05-10 11:02:53.499513+00:00

對(duì)于有采用了夏時(shí)制的要使用時(shí)區(qū)對(duì)象的normzlize方法來(lái)處理,如下所示:

import datetime
import pytz
utc = pytz.timezone('UTC')
now_time = datetime.datetime.now()
utc_time = utc.normalize(now_time.astimezone(tz=utc))
print(now_time,utc_time)
2019-05-10 19:08:25.286690 2019-05-10 11:08:25.286690+00:00

·LMT問(wèn)題

LMT,這是Local Mean Time的縮寫(xiě),網(wǎng)上查一查意思是本地平均時(shí)。而且時(shí)間是+8:06,說(shuō)明與UTC的時(shí)差不是8個(gè)小時(shí)整。下面有一個(gè)問(wèn)題是,當(dāng)我們用pytz.timezone('Asia/Shanghai') 生成的時(shí)區(qū)是LMT,而非標(biāo)準(zhǔn)的CST(就是Central Standard Time的意思)。那么這會(huì)造成什么后果呢?下面來(lái)展示下:

  

>>>d = datetime.datetime(2019,5,10,19,12,30,tzinfo=tz)
>>>d
datetime.datetime(2019, 5, 10, 19, 12, 30, tzinfo=)
>>>d = d.astimezone(utc)
>>>d
datetime.datetime(2019, 5, 10, 11, 6, 30, tzinfo=)
>>>d.astimezone(tz) 
datetime.datetime(2019, 5, 10, 19, 6, 30, tzinfo=)

由上述可以發(fā)現(xiàn),剛開(kāi)始由datetime.datetime()生成的時(shí)間是LMT,接下來(lái)我將其轉(zhuǎn)換為UTC時(shí)區(qū)的時(shí)間,最后又轉(zhuǎn)回來(lái),我們可以發(fā)現(xiàn),現(xiàn)在的時(shí)間又變成了CST標(biāo)準(zhǔn)。而這兩個(gè)標(biāo)準(zhǔn),就直接導(dǎo)致其相差了6分鐘。

下面我們可以用時(shí)區(qū)對(duì)象的localize方法,將LMT準(zhǔn)換為CST,使其統(tǒng)一。

>>>datetime.datetime(2019,5,10,20,30,32,tzinfo=tz) 
datetime.datetime(2019, 5, 10, 20, 30, 32, tzinfo=)
>>>tz.localize(datetime.datetime(2019,5,10,20,30,32))
datetime.datetime(2019, 5, 10, 20, 30, 32, tzinfo=)

所以我的建議是生成帶時(shí)區(qū)的時(shí)間時(shí),一定要使用timezone.localize()來(lái)生成。不要在時(shí)間對(duì)象的構(gòu)造函數(shù)中傳入tzinfo的方式來(lái)實(shí)現(xiàn)。

以上是python中pytz指的是什么的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!


網(wǎng)頁(yè)名稱(chēng):python中pytz指的是什么-創(chuàng)新互聯(lián)
本文地址:http://weahome.cn/article/hciie.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部