成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Python中使用dateutil模塊解析時(shí)間

HackerShell / 912人閱讀

摘要:最近剛接觸項(xiàng)目組內(nèi)的項(xiàng)目,發(fā)現(xiàn)所有的時(shí)間格式都是用的,同事美其名曰說(shuō)是為了項(xiàng)目的國(guó)際化其實(shí)用戶量最多幾百人吧,還都集中在公司內(nèi)部,哪來(lái)的國(guó)際化,哈哈哈哈。所以決定對(duì)該時(shí)間格式深入研究下,發(fā)現(xiàn)了中的模塊。

最近剛接觸項(xiàng)目組內(nèi)的python項(xiàng)目,發(fā)現(xiàn)所有的時(shí)間格式都是用的iso8601,同事美其名曰說(shuō)是為了項(xiàng)目的國(guó)際化(其實(shí)用戶量最多幾百人吧,還都集中在公司內(nèi)部,哪來(lái)的國(guó)際化,哈哈哈哈?。?。所以決定對(duì)該時(shí)間格式深入研究下,發(fā)現(xiàn)了python中的dateutil模塊。

DATETIME轉(zhuǎn)ISO8601格式,直接用isoformat()方法轉(zhuǎn)即可

now_time = datetime.now().isoformat()

輸出為

2018-12-04T08:44:35.792445

從字符串解析DATETIME格式(不用dateutil模塊)

now_date_str = datetime.now().isoformat().split(".")[0]
my_format = "%Y-%m-%dT%H:%M:%S"
print(datetime.strptime(now_date_str, my_format))

這是python中最常用的將字符串轉(zhuǎn)成時(shí)間格式的方法,輸出結(jié)果為

2018-12-04 08:44:35

使用dateutil解析字符串

from dateutil.parser import parse
timestamp = parse(now_date_str, fuzzy=True)
print(timestamp)

輸出結(jié)果同上,但這個(gè)parse方法中的fuzzy很神奇,可以模糊匹配時(shí)間格式,感興趣的可以看下源碼哈!

計(jì)算時(shí)間差

today = date.today()
my_birthday = date(year=1992, month=3, day=17)
print("我已經(jīng)出生" + str((today - my_birthday).days) + "天")

可以直接計(jì)算我自己出生多少天了,輸出為

我已經(jīng)出生9758天

但是如果我要計(jì)算我多大了,也就是出生多少年,會(huì)出現(xiàn)什么情況呢?

Traceback (most recent call last):
2018-12-04 08:57:08
  File "F:/pythonProject/testcode/testDate.py", line 27, in 
    print((today-my_birthday).years)
2018-12-04 08:57:08
AttributeError: "datetime.timedelta" object has no attribute "years"

很遺憾,報(bào)錯(cuò)了,因?yàn)閠imedelta中沒(méi)有獲取年份和月份的方法,所以我們繼續(xù)使用dateutil模塊

from dateutil.relativedelta import relativedelta
diff = relativedelta(today, my_birthday)

通過(guò)輸出可以發(fā)現(xiàn),我們能獲取到兩個(gè)日期中間相差幾年,幾個(gè)月和幾天

relativedelta(years=+26, months=+8, days=+17)
print(diff.years)
print(diff.months)
print(diff.days)
26
8
17

獲取日期列表,如果需要獲取連續(xù)五周周二的日期,通過(guò)dateutil可以很容易實(shí)現(xiàn)

from dateutil.rrule import rrule, WEEKLY
pp(list(rrule(WEEKLY, count=10, dtstart=next_tuesday)))

輸出為

[datetime.datetime(2018, 12, 4, 8, 59, 6),
 datetime.datetime(2018, 12, 11, 8, 59, 6),
 datetime.datetime(2018, 12, 18, 8, 59, 6),
 datetime.datetime(2018, 12, 25, 8, 59, 6),
 datetime.datetime(2019, 1, 1, 8, 59, 6),
 datetime.datetime(2019, 1, 8, 8, 59, 6),
 datetime.datetime(2019, 1, 15, 8, 59, 6),
 datetime.datetime(2019, 1, 22, 8, 59, 6),
 datetime.datetime(2019, 1, 29, 8, 59, 6),
 datetime.datetime(2019, 2, 5, 8, 59, 6)]

注意:dtstart必須是是時(shí)間格式

更多關(guān)于dateutil的例子可以從以下網(wǎng)站學(xué)習(xí)

https://dateutil.readthedocs....

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42747.html

相關(guān)文章

  • python - Numpy - matplotlib

    摘要:就好了下載,它是的。比較嗨,是文件把它移到你安裝的包里的文件夾里主要看是不是有然后輸入 系統(tǒng):W10 專(zhuān)業(yè)版(64) 已安裝:pthon2.7.11目的:安裝Numpy, matplotlib 學(xué)習(xí)機(jī)器學(xué)習(xí)(Machine Learning) matplotib 用的不是官網(wǎng)最新版,使matplotlib-1.4.2.win32-py2.7 Numpy使用numpy-1.10.2-...

    KavenFan 評(píng)論0 收藏0
  • Python 3.7 將引入 dataclass 裝飾器

    摘要:簡(jiǎn)評(píng)將于今年夏天發(fā)布,中將會(huì)有許多新東西,最激動(dòng)人心的新功能之一是裝飾器。因此,只需將代碼更改為以下代碼即可實(shí)現(xiàn)四種方法我們?nèi)サ袅朔椒?,以確保裝飾器可以添加它生成的對(duì)應(yīng)方法。 簡(jiǎn)評(píng):Python 3.7 將于今年夏天發(fā)布,Python 3.7 中將會(huì)有許多新東西,最激動(dòng)人心的新功能之一是 dataclass 裝飾器。 什么是 Data Class 大多數(shù) Python 開(kāi)發(fā)人員編寫(xiě)過(guò)很...

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

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

0條評(píng)論

HackerShell

|高級(jí)講師

TA的文章

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