嘿,我在python中使用datetime,我想知道解析这个时间戳的最佳方法是什么。
时间戳是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]))
这类工作,但我觉得应该有一个更精简的方式(我对python很陌生,我相信我做这件事是像屁股一样的)。另外,我的时间戳中有纳秒,但datetime对象中只有微秒,是否有更好的模块可以使用?我需要能够在时间上做一些操作,比如减去时间并将它们放入调度程序中。
还有更好的办法吗?
你可以使用Numpy的datetime64:http://docs.scipy.org/doc/numpy-dev/reference/arrays.datetime.html
它支持纳秒和更高的精度。
你的方法没有本质上的愚蠢,但是你可以尝试pyiso8601或dateutil
datetime
仅精确到微秒。一、 e.10e-6
。所以
将被截断为
如果你做了以上的事。
最好在a
float
中单独保持子秒,并执行一些浮点模运算来跟踪它。我觉得
datetime
不这样做很荒谬。对于那些说时钟不够精确的人来说。 这不是唯一的用例。当你从距离到时间来回转换时。 (乘以光速。) 1微秒是300米。 300米是3个足球场的长度。这完全是对准确性的废话。
相关问题 更多 >
编程相关推荐