国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

pytz-時(shí)區(qū)相關(guān)模塊

LucasTwilight / 2706人閱讀

摘要:最近開發(fā)過程中遇到這樣一個(gè)問題在使用模塊獲取當(dāng)前時(shí)間之后與程序中某些時(shí)間操作會(huì)報(bào)錯(cuò)這個(gè)我就有點(diǎn)納悶了怎么會(huì)報(bào)這個(gè)錯(cuò)誤呢然后我開始搜資料原來在有兩種時(shí)間類型和沒有表明時(shí)區(qū)的時(shí)間如有時(shí)區(qū)的時(shí)間如可以發(fā)現(xiàn)類型時(shí)間在打印對(duì)象信息時(shí)多了一個(gè)沒錯(cuò)這

最近開發(fā)過程中遇到這樣一個(gè)問題:

在使用datetime模塊獲取當(dāng)前時(shí)間之后,與程序中某些時(shí)間操作會(huì)報(bào)錯(cuò):
TypeError: can"t subtract offset-naive and offset-aware datetimes

這個(gè)我就有點(diǎn)納悶了,怎么會(huì)報(bào)這個(gè)錯(cuò)誤呢?然后我開始搜資料,原來在有兩種時(shí)間類型:naiveaware

naive

沒有表明時(shí)區(qū)的時(shí)間.如: datetime.datetime.now()

  datetime.datetime(2019, 7, 8, 14, 13, 52, 534690)

aware

有時(shí)區(qū)的時(shí)間.如:datetime.datetime.now(pytz.utc)

  datetime.datetime(2019, 7, 8, 6, 22, 16, 245504, tzinfo=)

可以發(fā)現(xiàn)aware類型時(shí)間在打印對(duì)象信息時(shí)多了一個(gè)tzinfo,沒錯(cuò),這個(gè)就是用來標(biāo)識(shí)時(shí)區(qū)的.而因?yàn)槲覀儷@取當(dāng)前的時(shí)候沒有傳入時(shí)區(qū),為naive類型,所以與有些aware時(shí)間操作會(huì)發(fā)生異常,其實(shí)解決方法也很簡(jiǎn)單,將naive轉(zhuǎn)化為aware類型就好了,怎樣轉(zhuǎn)化呢?我找到了這幾種方式:

方式一
datetime.datetime.now().replace(tzinfo=pytz.utc)
方式二
datetime.datetime.now(pytz.utc)
方式三
pytz.utc.localize(datetime.datetime.now())

而第二種生成方式是在創(chuàng)建時(shí)間的時(shí)候指定時(shí)間,其他兩種可以用來轉(zhuǎn)化/修改時(shí)區(qū).寫了這么多,你們肯定在疑惑一個(gè)東西:pytz
這是一個(gè)時(shí)區(qū)模塊,用來在python中進(jìn)行一個(gè)時(shí)區(qū)的相關(guān)操作.其提供的對(duì)象方法為

__all__ = [
    "timezone", "utc", "country_timezones", "country_names",
    "AmbiguousTimeError", "InvalidTimeError",
    "NonExistentTimeError", "UnknownTimeZoneError",
    "all_timezones", "all_timezones_set",
    "common_timezones", "common_timezones_set",
]

接下來我們一個(gè)個(gè)介紹:

timezone:傳入一個(gè)時(shí)區(qū),如:Asia/Shanghai,返回一個(gè)時(shí)區(qū)對(duì)象

pytz.timezone("Asia/Shanghai")
>>> 

utc: 返回一個(gè)utc時(shí)區(qū)對(duì)象

pytz.utc
>>> 

country_timezones:傳入一個(gè)國(guó)家英文縮寫,返回?fù)碛械臅r(shí)區(qū),如:中國(guó)("CN"),不傳則返回由247個(gè)國(guó)家縮寫為key,時(shí)區(qū)為值的dict

pytz.country_timezones("CN")
>>> [u"Asia/Shanghai", u"Asia/Urumqi"]

country_names:拿一個(gè)國(guó)家英文縮寫,返回國(guó)家完整英文名稱

pytz.country_names["CN"]
>>>  u"China"

all_timezones:所有時(shí)區(qū)的列表(591個(gè))

pytz.all_timezones
>>>  ["Asia/Shanghai", "Asia/Urumqi", ...] # 有591個(gè),所以還是列一下咱們國(guó)家的時(shí)區(qū)

all_timezones_set:所有時(shí)區(qū)的集合

pytz.all_timezones_set
>>>  {"Asia/Shanghai", "Asia/Urumqi", ...}

common_timezones:常用的時(shí)區(qū)列表(439個(gè))

pytz.common_timezones
>>>  ["Asia/Shanghai", "Asia/Urumqi", ...] # 有439個(gè)

common_timezones_set:常用的時(shí)區(qū)集合

pytz.common_timezones
>>>  {"Asia/Shanghai", "Asia/Urumqi", ...}

AmbiguousTimeError:模糊時(shí)間錯(cuò)誤

InvalidTimeError:無效時(shí)間錯(cuò)誤

NonExistentTimeError:不存在的時(shí)間錯(cuò)誤

UnknownTimeZoneError:未知的時(shí)區(qū)錯(cuò)誤

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/45113.html

相關(guān)文章

  • 解決樹莓派下載django的TypeError:..... Retry and int 問題

    摘要:沒報(bào)錯(cuò)但依然無法安裝使用再次安裝無果感謝大神的分享我才發(fā)覺這是一個(gè)新手的通用問題樹莓派自帶的系統(tǒng)附帶了一個(gè)來自前寒武紀(jì)的版本,如果您不想花費(fèi)數(shù)小時(shí)來調(diào)試與相關(guān)的問題,那么就必須升級(jí)它。 諸位, 不好意思哈, 請(qǐng)?jiān)试S我把完整的標(biāo)題寫完(標(biāo)題不能超過64個(gè)有效字符): 記一次解決樹莓派下載Django庫(kù) ——報(bào)錯(cuò)為TypeError: unsupported operand types f...

    TalkingData 評(píng)論0 收藏0
  • Python 3,一行代碼處理各種時(shí)間轉(zhuǎn)換,從此跟datetime,time模塊說拜拜 ~ ~ 不收

    摘要:代碼實(shí)例的時(shí)間的時(shí)間輸出和相差的時(shí)長(zhǎng)輸出結(jié)果也就是說,多倫多和溫哥華有個(gè)小時(shí)的時(shí)差小屌絲我去這么牛嘛小魚這是開胃菜。代碼實(shí)例為了顯示直觀,我直接用來運(yùn)行這沒有什么難度,在前面的代碼中,也有展示。 ...

    yy13818512006 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<