最近剛接觸專案組內的python專案,發現所有的時間格式都是用的iso8601,同事美其名曰說是為了專案的國際化(其實使用者量最多幾百人吧,還都集中在公司內部,哪來的國際化,哈哈哈哈!)。所以決定對該時間格式深入研究下,發現了python中的dateutil模組。
datetime轉iso8601格式,直接用isoformat()方法轉即可
now_time = datetime.now().isoformat()
輸出為
2018-12-04t08:44:35.792445
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中最常用的將字串轉成時間格式的方法,輸出結果為
2018-12-04 08:44:35
from dateutil.parser import parse
timestamp = parse(now_date_str, fuzzy=true)
print(timestamp)
輸出結果同上,但這個parse方法中的fuzzy很神奇,可以模糊匹配時間格式,感興趣的可以看下原始碼哈!
today = date.today()
my_birthday = date(year=1992, month=3, day=17)
print('我已經出生' + str((today - my_birthday).days) + '天')
可以直接計算我自己出生多少天了,輸出為
我已經出生9758天
但是如果我要計算我多大了,也就是出生多少年,會出現什麼情況呢?
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'
很遺憾,報錯了,因為timedelta中沒有獲取年份和月份的方法,所以我們繼續使用dateutil模組
from dateutil.relativedelta import relativedelta
diff = relativedelta(today, my_birthday)
通過輸出可以發現,我們能獲取到兩個日期中間相差幾年,幾個月和幾天
relativedelta(years=+26, months=+8, days=+17)
print(diff.years)
print(diff.months)
print(diff.days)
26
817
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必須是是時間格式
和 在python中使用
給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。請你找出這兩個有序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設 nums1 和 nums2 不會同時為空。示例 1 nums1 1 3 nums2 2 則中位數是 2.0 示例 2 nums1 1 2 ...
python中使用bp Python ocbp包
概述ocbpy是乙個python模組,它可以在aacgm座標和磁性之間進行轉換。相對於開闊地調整緯度和當地時間的座標系 閉合場線邊界 ocb 這對統計特別有用 磁極的研究,其中相對於固定磁座標的網格劃分 系統會導致不同物理區域的平均值,例如極光 和極冠測量。此座標繫在 chisham,g.2017 ...
在python中使用websocket
介紹一款很帥的外掛程式autobahnpython,通過它可以在python中很方便的使用websocket進行通訊 基於twisted框架 這個外掛程式真正強大的地方是它提供了乙個 發布 訂閱模式,具體內容有空再寫,先簡單介紹一下如何建立傳統的連線。建立伺服器 必須的模組 from twisted...