您好,登錄后才能下訂單哦!
官方文檔的示例中沒有我們習慣的日期格式,查了很多博客轉換日期和時間戳也都是大概的能得到結果的方式,常將 datetime 和 time 兩個模塊混用,個人覺得時間格式化不應該這么麻煩,還得用兩個模塊來支持?故而翻遍了源碼,總結以下常用的幾種日期和時間戳的轉換方式。
以下主要有三個元素(時間字符串,格式,Unix時間戳),可將時間字符串轉為另一種時間格式,或將時間字符串轉為時間戳,或將時間戳轉為時間字符串。
datetime 和 time 兩個模塊,任意一個都能轉換完成。
以下兩個模塊均列出示例:
# coding: utf-8 from datetime import datetime import time s = '2019-06-07 16:30:10' f = '%Y-%m-%d %H:%M:%S' s2 = 'Fri Jun 7 16:30:10 2019' f2 = '%c' // 時間字符串轉時間戳, 時間字串 s和format 對應 // int(t) 轉為整型 t = datetime.strptime(s, f).timestamp() # 1559856210.0 t2 = time.mktime(time.strptime(s, f)) # 1559856210.0 t3 = time.mktime(time.strptime(s2, f2)) # 1559856210.0 t4 = datetime.strptime(s2, f2).timestamp() # 1559856210.0 t5 = datetime.strptime('2019-06-07', '%Y-%m-%d').timestamp() # 1559836800.0 t6 = 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 # 時間戳轉為時間字符串 d = datetime.fromtimestamp(ut) # 2019-06-07 16:30:10 d2 = time.strftime(f, time.localtime(ut)) # 2019-06-07 16:30:10 d3 = time.ctime(ut) # Fri Jun 7 16:30:10 2019 d4 = datetime.fromtimestamp(ut).ctime() # Fri Jun 7 16:30:10 2019 d5 = time.strftime('%Y-%m-%d', time.localtime(ut)) # 2019-06-07 (05:23:30, %H:%M:%S) d6 = datetime.fromtimestamp(ut).date() # 2019-06-07 d7 = datetime.fromtimestamp(ut).time() # 16:30:10 d8 = time.strftime('%x', time.localtime(ut)) # 06/07/19 d9 = time.strftime('%X', time.localtime(ut)) # 16:30:10 dd = 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") # 格式轉換 # 將 2019-06-07 16:30:10 轉為 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 轉為 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 轉為 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 轉為 2019-06-07 16:30:10 transf4 = time.strftime(f, time.strptime(s2, f2)) print(transf, transf2, transf3, transf4)
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。