python相当于C#的system.datetime.Ticks()?

时间:2015-03-31 10:51:20

标签: c# python

我想得到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#代码的等效输出?'。

1 个答案:

答案 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#返回的值相比。

注意:

  • 假定UTC时间。
  • DateTime.UtcNow.Ticks对象的分辨率由下式给出 datetimedatetime.resolution或。datetime.timedelta(0, 0, 1) 微秒分辨率(1e-06秒)。 C#Ticks据称是1e-07秒。