如何获取自定义时间自 python 纪元以来的毫秒时间?

How to get time in millisecond since epoch in python for a custom time?

我正在尝试获取自定义时间自纪元过去以来的毫秒数。

我尝试使用以下代码,并且能够获得纪元过去后的秒数。

dt = datetime(2022,5,1,0,0,1,100000)
print(dt)
endtime = time.mktime(dt.timetuple())
endtime = endtime * 1000
print(endtime)

然而,这在几秒钟后停止,我得到的值是 1651343401000 而不是 1651343401100。

有人可以帮我吗?

使用这个获取当前时间:

round(time.time() * 1000)

并将其用于自定义时间:

 datetime.datetime(1970, 1, 1)).total_seconds() * 1000)

希望对你有所帮助

你太难为自己了。 API 已经提供了您正在寻找的内容:

>>> dt
datetime.datetime(2022, 5, 1, 0, 0, 1, 100000)
>>> 
>>> dt.timestamp()
1651388401.1

如果您愿意,可以随意挑出其中的整数和小数部分。 或缩放最终组件:

>>> millis = dt.microsecond / 1e3
>>> millis
100.0

另外, 你可能过得更好 远离天真的邮票,更喜欢 UTC。 那么“seconds since epoch”将具有常规含义。

>>> from datetime import timezone
>>> dt = datetime(2022, 5, 1, 0, 0, 1, 100_000, tzinfo=timezone.utc)
>>> dt.timestamp()
1651363201.1