2016-12-07 81 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时间。