我有一個谷歌應用程序引擎日期時間屬性,我用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
爲什麼你首先在日期時間進行平等比較?這與在浮動上進行等式比較一樣糟糕。 –