Python四种日期时间表示结构及相互转换

阅读 186

2022-07-12


四种时间表示方法:

# 1. string
s = "2017-05-02 21:03:07"

# 2. datetime
import datetime
datetime.datetime.now()
# datetime.datetime(2017, 5, 2, 21, 4, 25, 348000)

# 3. time.struct_time
import time
time.localtime() # 本地时间
# time.struct_time(tm_year=2017, tm_mon=5, tm_mday=2, tm_hour=21, tm_min=39, tm_sec=45, tm_wday=1, tm_yday=122, tm_isdst=0)
time.gmtime() # 标准时间
# time.struct_time(tm_year=2017, tm_mon=5, tm_mday=2, tm_hour=13, tm_min=39, tm_sec=19, tm_wday=1, tm_yday=122, tm_isdst=0)

# timestamp
time.time()
# 1493730380.682

# timestamp remove ms
int(time.time())
# 1493730380

string转其他

s = "2017-05-02 21:03:07"
s1 = "1495694977"

# string转datetime
import datetime
dt = datetime.datetime.strptime(s, "%Y-%m-%d %H:%M:%S")
# datetime.datetime(2017, 5, 2, 21, 3, 7)

#string转time
import time

t = time.strptime(s, "%Y-%m-%d %H:%M:%S")
# time.struct_time(tm_year=2017, tm_mon=5, tm_mday=2, tm_hour=21, tm_min=3, tm_sec=7, tm_wday=1, tm_yday=122, tm_isdst=-1)

time.localtime(float(s1))
# time.struct_time(tm_year=2017, tm_mon=5, tm_mday=25, tm_hour=14, tm_min=49, tm_sec=37, tm_wday=3, tm_yday=145, tm_isdst=0)

# string格式转timestamp时间戳,先转为time对象格式,再转为时间戳
s = u'2017-05-31 08:58:55'
time.mktime(time.strptime(s, "%Y-%m-%d %H:%M:%S"))
# 1496192335.0

datetime转其他

import datetime
dt = datetime.datetime.now()
# datetime.datetime(2017, 5, 2, 21, 16, 35, 462000)

# datetime转string
s = dt.strftime("%Y-%m-%d %H:%M:%S")
# '2017-05-02 21:16:55'

# datetime转time
t = dt.timetuple()
# time.struct_time(tm_year=2017, tm_mon=5, tm_mday=2, tm_hour=21, tm_min=16, tm_sec=55, tm_wday=1, tm_yday=122, tm_isdst=-1)

time struct_time转其他

import time
import datetime

t = time.localtime()
# time.struct_time(tm_year=2017, tm_mon=5, tm_mday=2, tm_hour=21, tm_min=22, tm_sec=34, tm_wday=1, tm_yday=122, tm_isdst=0)

# time转string
s = time.strftime("%Y-%m-%d %H:%M:%S", t)
# '2017-05-02 21:22:49'

# time转datetime
dt = datetime.datetime(*t[0:6])
# datetime.datetime(2017, 5, 2, 21, 22, 49)

# time转timestamp
ts = time.mktime(t)
# 1493731369.0

timestamp 整型转其他

import time
import datetime

ts = time.time()
# 1493731831.136

# timestamp转datetime 本地时区
dt = datetime.datetime.fromtimestamp(ts)
# datetime.datetime(2017, 5, 2, 21, 31, 26, 826000)

# 标准时区
dt_utc = datetime.datetime.utcfromtimestamp(tm)
# datetime.datetime(2017, 5, 2, 13, 31, 26, 826000)

# timestamp转time 本地时区
t = time.localtime(ts)
# time.struct_time(tm_year=2017, tm_mon=5, tm_mday=2, tm_hour=21, tm_min=31, tm_sec=26, tm_wday=1, tm_yday=122, tm_isdst=0)

# 标准时区
t_utc = time.gmtime(ts)
# time.struct_time(tm_year=2017, tm_mon=5, tm_mday=2, tm_hour=13, tm_min=31, tm_sec=26, tm_wday=1, tm_yday=122, tm_isdst=0)

import time
s= 1448003786
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(s))

Python四种日期时间表示结构及相互转换_时间戳

参考

​​Python官方文档​​


精彩评论(0)

0 0 举报