【问题标题】:Python current timestamp for UTC with millisecond accuracyUTC的Python当前时间戳,精度为毫秒
【发布时间】:2014-10-21 05:19:55
【问题描述】:

我想获取自 UTC 时间以来经过的毫秒数。这对于 python 来说似乎是一个非常简单的任务,但我有点卡在这里。

我可以使用

time.time() * 1000 

但取决于底层系统,这可能会返回 UTC 或本地时间的值。

我也可以使用像

这样的方法
time.mktime(datetime.utcnow().timetuple()) * 1000

但是我无法用这个获得毫秒精度,乘以 1000 只会在末尾添加三个零,但我需要精确的毫秒,因为我需要监控耗时不到一秒的进程。

【问题讨论】:

  • time.time() 返回自 1970 年 1 月 1 日午夜 UTC 以来的秒数,它定义。唯一与系统相关的因素是它是否返回精度超过一秒的值。

标签: python datetime timestamp


【解决方案1】:

这是获取毫秒数的一种方法

ts =  datetime.utcnow()
print ts.microsecond  #prints microseconds
print time.mktime(ts.timetuple()) + ts.microsecond * 1e-6

输出

128852
1409151725.13

【讨论】:

  • 这很好用,只是我想要一个整数的结果,所以稍微编辑一下; time.mktime(ts.timetuple()) * 1000 + ts.microsecond * 1e-3 更适合我的情况
【解决方案2】:

如果你使用 Python 3.3+,你可以使用datetime.datetime.timestamp:

>>> import datetime
>>> datetime.datetime.utcnow().timestamp()
1409120835.727991
>>> int(_ * 1000)
1409120835727

【讨论】:

    猜你喜欢
    • 2014-03-20
    • 1970-01-01
    • 2011-12-30
    • 2020-03-18
    • 1970-01-01
    • 1970-01-01
    • 2018-10-10
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多