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