四种时间表示方法:
# 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官方文档