Bob*_*emi 5 python time datetime
嘿我在使用datetime工作在python中,我想知道解析这个时间戳的最佳方法是什么.
时间戳是ISO标准,这里是一个例子"2010-06-19T08:17:14.078685237Z"
到目前为止,我已经习惯了
time = datetime.datetime.strptime(timestamp.split(".")[0], "%Y-%m-%dT%H:%M:%S")
precisetime = time + datetime.timedelta(0,float("." + timestamp[:-1].split(".")[0]))
Run Code Online (Sandbox Code Playgroud)
这种作品,但我觉得应该有一个更简化的方式(我对python很新,我相信我这样做就像一个屁股).另外,我的时间戳中有纳秒,但在我的datetime对象中只有几微秒,是否有更好的模块可供使用?我需要能够在时间上进行操作,例如减去时间并将它们放入调度程序中.
有什么更好的办法吗?
你可以使用Numpy的datetime64:http://docs.scipy.org/doc/numpy-dev/reference/arrays.datetime.html
它支持纳秒和更高的精度.
>>> import numpy as np
>>> np.version.version
'1.7.1'
>>> np.datetime64("2010-06-19T08:17:14.078685237Z", dtype="datetime64[ns]")
numpy.datetime64('2010-06-19T08:17:14.078685237+0000')
Run Code Online (Sandbox Code Playgroud)
datetime仅精确到微秒。即10e-6。
所以
14.078685237
Run Code Online (Sandbox Code Playgroud)
将被截断到
14.078685
Run Code Online (Sandbox Code Playgroud)
如果您执行上述操作。
最好只将秒保持在内float,并执行一些浮点模数运算来跟踪此情况。
我发现datetime没有做到这一点很荒谬。
对于那些说时钟不够准确的人。那不是唯一的用例。当您从远处来回转换时。(乘以光速。)1微秒是300m。300米是3个足球场的长度。这是完全废话的准确性。