import time
t = time.time()
print(t) #默认情况下python的时间戳是以秒为单位输出的浮点数
print(int(t)) #通过 int() 强制转换成10位
print(int( round(t*1000))) #通过 *1000 把秒转换毫秒的方法获得13位的时间戳
dt = "2020-09-23T08:00:00+08:00"
timearray = time.strptime(dt,"%Y-%m-%dT%H:%M:%S+08:00")
timestamp = time.mktime(timearray)
# print(timearray)
print(timestamp)
timestamp = 1600819200.0
loacltime = time.localtime(timestamp)
datatime = time.strftime("%Y-%m-%dT%H:%M:%S+08:00",loacltime)
# print(loacltime)
print(datatime)
输出:
1600839307.979603 #默认情况下python的时间戳是以秒为单位输出的
1600839307 #通过 int() 强制转换成10位
1600839307980 #通过 *1000 把秒转换毫秒的方法获得13位的时间戳
1600819200.0 #自定义时间戳转换为默认python时间戳
2020-09-23T08:00:00+08:00 #python默认时间戳,转换为自定义时间戳
如果直接复制粘贴我的脚本,前三个输出是不一样的,因为那是系统时间。
对自定义的部分做一下解释,如下:
import time
dt = "2020-09-23T08:00:00+08:00"
timearray = time.strptime(dt,"%Y-%m-%dT%H:%M:%S+08:00")
timestamp = time.mktime(timearray)
print(timearray)
print(timestamp)
timestamp = 1600819200.0
loacltime = time.localtime(timestamp)
datatime = time.strftime("%Y-%m-%dT%H:%M:%S+08:00",loacltime)
print(loacltime)
print(datatime)
#输出
#time.struct_time(tm_year=2020, tm_mon=9, tm_mday=23, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=267, tm_isdst=-1)
#1600819200.0
#time.struct_time(tm_year=2020, tm_mon=9, tm_mday=23, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=267, tm_isdst=0)
#2020-09-23T08:00:00+08:00
通过这样的输出,我们就能知道每一步是干嘛的了。%Y-%m-%dT%H:%M:%S+08:00
中的T
和+08:00
是字符串,是因为我要生成或是转换的时间戳是这样的。可以根据自己的需求自定义。没什么难度,多尝试就知道怎么用了。
import time
import datetime
# 先获得时间数组格式的日期
threeDayAgo = (datetime.datetime.now() - datetime.timedelta(days = 3))
# 转换为时间戳
timeStamp = int(time.mktime(threeDayAgo.timetuple()))
# 转换为其他字符串格式
otherStyleTime = threeDayAgo.strftime("%Y-%m-%d %H:%M:%S")
print(otherStyleTime)
#输出
#2019-05-18 18:06:08
import time
import datetime
#给定时间戳
timeStamp = 1557502800
dateArray = datetime.datetime.utcfromtimestamp(timeStamp)
threeDayAgo = dateArray - datetime.timedelta(days = 3)
print(threeDayAgo)
#输出
#2019-05-07 15:40:00