我有一个谷歌应用程序引擎日期时间属性,我用x.date = datetime.datetime.now()
填充。我在日期之间做了很多比较,经过很多调试后,事实证明,我的客户端设备发送日期的精度比Python日期的精度要低,这导致了可怕的混乱。Python日期时间精度
这里是Python的产生: 2012-08-28 21:36:13.158497
与datetime.datetime.now()
,但我要的是2012-08-28 21:36:13.158000
(注意末尾的三个零。)
我怎样才能做到这一点? (记住,我不试图格式字符串或者任何我想格式化日期对象。)
我想一个办法是把它格式化成与所需的精确度,像这样的字符串:
dateString = date.strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
然后回到日期对象。但是有一个更好的方法。
即使客户端具有更好的精度,您是否会遇到客户端和服务器以及不同服务器实例之间的时钟偏差问题。 –
如果您的客户端和服务器导致的错误不是以纳秒级精度进行同步,则根本不会在网络系统上修复它。网络延迟将比舍入误差大几个数量级。 – geoffspear
为什么你首先在日期时间进行平等比较?这与在浮动上进行等式比较一样糟糕。 –