2016-12-07 80 views
1

我轉換DateTime對象到字符串將被傳遞通過http到另一個服務器(在JSON對象爲場)其中使用再次轉換爲datetime對象strptime。但是,間歇性地,兩步轉換不會導致最初轉換的數據相同。總是,最終日期時間對象中的錯誤是減少了一秒。兩臺服務器上蟒日期時間:strptime和strftime不轉換相同的數據正確地

我的Python版本是2.7.6。

發送服務器上的Django 1.8.2版本上運行。接收服務器在django版本1.9上運行。

我使用轉換/反轉換的日期格式爲 「%Y-%間 - %的dT%H:%M:%S%FZ」。

轉換(Django上1.8.2服務器):

in_time = datetime.datetime.now() 
input_time_str = datetime.datetime.strftime(input_time, "%Y-%m-%dT%H:%M:%S.%fZ") 

去轉換(Django的1.9服務器上):

input_time = datetime.datetime.strptime(input_time_str, "%Y-%m-%dT%H:%M:%S.%fZ") 

這是應該發生的或者一些版本不匹配導致這個? 任何幫助將不勝感激。

+0

'strptime'可能會丟棄時區信息,這可能是問題所在。改爲使用'python-dateutil'的解析器。 –

回答

0

datetime.now()返回當地時區的時間。當隨後strptime()解析那個時候,它不知道它指的是哪個時區;它可能會假設系統的默認時區,這可能與其他系統不同。

您可以使用datetime.utcnow()而不是獲得UTC時間。