我正在将一个datetime对象转换为一个字符串,通过http传递给另一个服务器(在一个json对象中作为字段),然后使用strptime将其再次转换为datetime对象。但是,间歇性地,两步转换不会产生最初转换的相同数据。总是,错误是在最终的datetime对象中减少一秒。
我在两台服务器上的python版本是2.7.6。
发送服务器在django 1.8.2版上运行。接收服务器在django 1.9版上运行。
我用于转换/转换的日期格式是"%Y-%m-%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 :(得分:0)
datetime.now()
返回您当地时区的时间。随后,当strptime()
解析那段时间时,它并不知道它所指的时区;它可能假定系统的默认时区,可能与其他系统不同。
您可以使用datetime.utcnow()
来获取UTC时间。