官方文檔的示例中沒(méi)有我們習(xí)慣的日期格式,查了很多博客轉(zhuǎn)換日期和時(shí)間戳也都是大概的能得到結(jié)果的方式,常將 datetime 和 time 兩個(gè)模塊混用,個(gè)人覺(jué)得時(shí)間格式化不應(yīng)該這么麻煩,還得用兩個(gè)模塊來(lái)支持?故而翻遍了源碼,總結(jié)以下常用的幾種日期和時(shí)間戳的轉(zhuǎn)換方式。
以下主要有三個(gè)元素(時(shí)間字符串,格式,Unix時(shí)間戳),可將時(shí)間字符串轉(zhuǎn)為另一種時(shí)間格式,或?qū)r(shí)間字符串轉(zhuǎn)為時(shí)間戳,或?qū)r(shí)間戳轉(zhuǎn)為時(shí)間字符串。
datetime 和 time 兩個(gè)模塊,任意一個(gè)都能轉(zhuǎn)換完成。
以下兩個(gè)模塊均列出示例:
# coding: utf-8from datetime import datetimeimport times = '2019-06-07 16:30:10'f = '%Y-%m-%d %H:%M:%S's2 = 'Fri Jun 7 16:30:10 2019'f2 = '%c'// 時(shí)間字符串轉(zhuǎn)時(shí)間戳, 時(shí)間字串 s和format 對(duì)應(yīng)// int(t) 轉(zhuǎn)為整型t = datetime.strptime(s, f).timestamp() # 1559856210.0t2 = time.mktime(time.strptime(s, f)) # 1559856210.0t3 = time.mktime(time.strptime(s2, f2)) # 1559856210.0t4 = datetime.strptime(s2, f2).timestamp() # 1559856210.0t5 = datetime.strptime('2019-06-07', '%Y-%m-%d').timestamp() # 1559836800.0t6 = datetime.strptime('06/07/19', '%x').timestamp() # 1559836800.0 (06/07/2019, '%m/%d/%Y')print(t, t2, t3, t4, t5, t6, "/n")ut = 1559896210# 時(shí)間戳轉(zhuǎn)為時(shí)間字符串d = datetime.fromtimestamp(ut) # 2019-06-07 16:30:10d2 = time.strftime(f, time.localtime(ut)) # 2019-06-07 16:30:10d3 = time.ctime(ut) # Fri Jun 7 16:30:10 2019d4 = datetime.fromtimestamp(ut).ctime() # Fri Jun 7 16:30:10 2019d5 = time.strftime('%Y-%m-%d', time.localtime(ut)) # 2019-06-07 (05:23:30, %H:%M:%S)d6 = datetime.fromtimestamp(ut).date() # 2019-06-07d7 = datetime.fromtimestamp(ut).time() # 16:30:10d8 = time.strftime('%x', time.localtime(ut)) # 06/07/19d9 = time.strftime('%X', time.localtime(ut)) # 16:30:10dd = datetime.fromtimestamp(ut).strftime('%x') # 06/07/19 [(16:30:10, %X), (Fri Jun 7 16:30:10 2019, %c)]print(d, d2, d3, d4, d5, d6, d7, d8, d9, dd, "/n")# 格式轉(zhuǎn)換# 將 2019-06-07 16:30:10 轉(zhuǎn)為 Fri Jun 7 16:30:10 2019# (16:30:10, %X)transf = datetime.strptime(s, f).strftime(f2)# 將 Fri Jun 7 16:30:10 2019 轉(zhuǎn)為 2019-06-07# (2019-06-07 16:30:10, %Y-%m-%d %H:%M:%S)transf2 = datetime.strptime(s2, f2).strftime('%Y-%m-%d')# 將 2019-06-07 16:30:10 轉(zhuǎn)為 Fri Jun 7 16:30:10 2019# (2019-06-07 16:30:10, %Y-%m-%d %H:%M:%S)transf3 = time.strftime('%c', time.strptime(s, f))# 將 Fri Jun 7 16:30:10 2019 轉(zhuǎn)為 2019-06-07 16:30:10transf4 = time.strftime(f, time.strptime(s2, f2))print(transf, transf2, transf3, transf4)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林站長(zhǎng)站。
新聞熱點(diǎn)
疑難解答
圖片精選