如何强制python的datetime.strftime以UTC格式输出?

时间:2017-01-23 20:03:56

标签: python datetime time timezone strftime

我有两台独立的机器(本地开发和服务器)从数据库访问相同的日期时间。日期时间对象在两台计算机上具有相同的值(包括时区):

本地

print ts
> datetime.datetime(2017, 1, 13, 7, 18, 9, 209000, tzinfo=<UTC>)

服务器

print ts
> datetime.datetime(2017, 1, 13, 7, 18, 9, 209000, tzinfo=<UTC>)

但是,strftime的输出在两台机器上都不同:

本地

print ts.strftime('%s')
> 1484320689

服务器

print ts.strftime('%s')
> 1484291889

这里发生了什么?如何让客户端和服务器以UTC格式输出相同的时间戳字符串?

1 个答案:

答案 0 :(得分:0)

如果有人遇到这篇文章,我找到了解决方案。

事实证明,strftime总是试图转换为当地时间,你无能为力。

解决方案是使用日历:

return calendar.timegm(self.timestamp.timetuple()) * 1000 + self.timestamp.microsecond / 1000

如果你需要你的毫秒:

{{1}}

或类似的微秒。