不同机器上的不一致的strptime

时间:2017-03-06 21:39:47

标签: python strptime

所以基本上我有一个获取UNIX时间的公式,但是我在Ubuntu机器上得到10800而不是0(在我的mac中它工作得很好):

datetime.datetime(*time.strptime("01.01.1970","%d.%m.%Y")).timestamp()
>> 10800.0

我见过几个不同的问题,但没有一个给我带来任何见解。

我认为这不是时区问题,因为:

datetime.datetime(time.strptime("01.01.1970.UTC", "%d.%m.%Y.%Z").timestamp()
>> 10800.0

2 个答案:

答案 0 :(得分:1)

是时区问题。依赖于posix time.strptime的{​​{1}}会在所有情况下返回本地时间。

请仔细阅读strptime的文档,您会注意到,虽然strptime支持格式字符,但“字段已解析,但 %Z中没有字段已更改

一般来说,支持tm的{​​{1}}的posix实现只支持strptime%Z或系统UTC的值(可用)在GMT的python中。但是它不会改变基于它们的返回值

答案 1 :(得分:-2)

UNIX时间完全取决于时区,您可以在此处找到明确答案en.wikipedia.org