1. 程式人生 > 程式設計 >python日期與時間戳的各種轉換示例

python日期與時間戳的各種轉換示例

官方文件的示例中沒有我們習慣的日期格式,查了很多部落格轉換日期和時間戳也都是大概的能得到結果的方式,常將 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)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。