使用datetime获取精确的Epoch时间戳



我想得到一个准确的一天(而不是小时、分钟、秒(Epoch时间戳,它在一天中保持不变。

这精确到毫秒(因此过于精确(:

from datetime import date, datetime
timestamp = datetime.today().strftime("%s")

有什么简单的方法可以降低它的精度吗?

UNIX时间戳必须精确到(毫秒(,因为它是一个数秒的数字。你唯一能做的就是选择一个特定的时间;保持恒定";一天中,午夜可能是最有意义的:

from datetime import datetime, timezone
timestamp = datetime.now(timezone.utc).replace(hour=0, minute=0, second=0, microsecond=0).timestamp()

这取决于您想要什么。

如果您只想快速找到方法,请使用time.time_ns()time.time()。Epoch时间由系统使用(在许多操作系统上(,因此没有转换。_ns()版本避免了浮点运算,因此速度更快。

如果你想以更有效的方式存储它,你可以做一个:(int(time.time()) % (24*60*60),所以你可以在一天开始时获得历元。与大多数其他时间(和GPS时间(相反,历元有全天246060秒(所以放弃闰秒(。

最新更新