我想得到python等价的timestamp.Ticks(),但是我需要它来自python日期时间,而不是时间对象.
这不等同于Python中的Get timer ticks,它询问"我如何得到午夜以来的滴答数?".
我问我如何得到给定日期时间的刻度数.按刻度我的意思是system.datetime.ticks:
https://msdn.microsoft.com/en-us/library/system.datetime.ticks%28v=vs.110%29.aspx
通过'得到等价'我的意思是'什么是将给出C#代码的等效输出的python代码?'.
mha*_*wke 12
根据引用的页面,DateTime.Ticks返回自之后的刻度数0001:01:01 00:00:00.每秒有1000万个刻度.
在Python中,datetime(1, 1, 1)代表0001-01-01 00:00:00.您可以使用a的total_seconds()方法计算秒数timedelta.然后,给定一个datetime对象,计算delta并将其转换为这样的刻度:
from datetime import datetime
t0 = datetime(1, 1, 1)
now = datetime.utcnow()
seconds = (now - t0).total_seconds()
ticks = seconds * 10**7
Run Code Online (Sandbox Code Playgroud)
作为一个功能,这是:
def ticks(dt):
return (dt - datetime(1, 1, 1)).total_seconds() * 10000000
>>> t = ticks(datetime.utcnow())
>>> t
6.356340009927151e+17
>>> long(t)
635634000992715136L
Run Code Online (Sandbox Code Playgroud)
该值优于C#使用的返回值DateTime.UtcNow.Ticks.
笔记:
datetime对象由下式给出
datetime.resolution,这是datetime.timedelta(0, 0, 1)或微秒的分辨率(1E-06秒).C#Ticks据称是1e-07秒.