python中时间操作有time和datetime两个模块
常用转换方法如下:
1. 字符串转datetime(元组),用time.strptime方法
import time
t = "2020-08-09 15:53:20"
timearray = time.strptime(t,"%Y-%m-%d %H:%M:%S")
print(timearray)
time.struct_time(tm_year=2020, tm_mon=8, tm_mday=9, tm_hour=15, tm_min=53, tm_sec=20, tm_wday=6, tm_yday=222, tm_isdst=-1)
2.datetime(元组)转字符串,用time.strftime方法
t_str = time.strftime("%Y-%m-%d %H:%M:%S",timearray)
print (t_str)
2020-08-09 15:53:20
3.datetime(元组)转时间戳,用time.mktime方法
timearray
Out[9]: time.struct_time(tm_year=2020, tm_mon=8, tm_mday=9, tm_hour=15, tm_min=53, tm_sec=20, tm_wday=6, tm_yday=222, tm_isdst=-1)
t_timestamp = time.mktime(timearray)
print(t_timestamp)
1596959600.0
4.时间戳转datetime(元组),用time.localtime方法
t_timestamp
Out[12]: 1596959600.0
t_tuple = time.localtime(t_timestamp)
print(t_tuple)
time.struct_time(tm_year=2020, tm_mon=8, tm_mday=9, tm_hour=15, tm_min=53, tm_sec=20, tm_wday=6, tm_yday=222, tm_isdst=0)
5.字符串转时间戳,可以先把字符串转为元组格式,再有元组转为时间戳
t_str
Out[18]: '2020-08-09 15:53:20'
t_timestamp2 = time.mktime(time.strptime(t_str,"%Y-%m-%d %H:%M:%S"))
print(t_timestamp2)
1596959600.0
6.时间戳转为字符串,可以先把字符串转为元组,再有元组转为字符串
t_timestamp
Out[21]: 1596959600.0
s_str = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(t_timestamp))
print(s_str)
2020-08-09 15:53:20
7.时间加减
import datetime
print(datetime.datetime.now())
2020-08-09 16:17:17.694903
print(datetime.datetime.now()+datetime.timedelta(days=1)) #后一天
2020-08-10 16:18:02.094528
print(datetime.datetime.now()+datetime.timedelta(days=-1)) #前一天
2020-08-08 16:18:07.002367