需求是 获取当天零点的13位时间戳
import time
import datetime
def get_current_zero_day_microsecond()->int:
d = datetime.datetime.now()
d_zero = d.replace(hour=0, minute=0, second=0, microsecond=0)
dt = (time.mktime(d_zero.timetuple())) + (d_zero.microsecond//1000000.0) * 1000 # 变为 秒级时间戳.毫秒
return int(dt * 1000)
分析:时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。获得10位时间戳的方式比较容易,那么怎么将十位时间戳转换为13位的呢。后面3位其实是毫秒,毫秒与秒的转换是千分之一,故使用将毫秒数据取出,然后转换位秒,再加上之前的十位时间戳,就可以拿到13位时间戳了。
当然由于我们获取的是零点整点的时间戳,其实再10位后面直接加上3个零就可以:P