需求是 獲取當天零點的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 # 變?yōu)?秒級時間戳.毫秒
return int(dt * 1000)
分析:時間戳是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現(xiàn)在的總秒數(shù)。獲得10位時間戳的方式比較容易,那么怎么將十位時間戳轉(zhuǎn)換為13位的呢。后面3位其實是毫秒,毫秒與秒的轉(zhuǎn)換是千分之一,故使用將毫秒數(shù)據(jù)取出,然后轉(zhuǎn)換位秒,再加上之前的十位時間戳,就可以拿到13位時間戳了。
當然由于我們獲取的是零點整點的時間戳,其實再10位后面直接加上3個零就可以:P