2017-03-06 38 views
0

所以基本上我有一個公式得到UNIX時間,但我得到10800,而不是0,在我的Ubuntu的機器(在我的Mac它工作得很好):不一致strptime進行的跨不同的機器

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

聽起來像是一個時區問題。 – user2357112

+0

請參閱編輯,它不是 –

+1

'datetime.datetime'實際上並沒有採用您試圖傳遞它的參數。 'time.strptime'的[output](https://docs.python.org/3/library/time.html#time.struct_time)實際上並不匹配'datetime.datetime' [查找]的內容( https://docs.python.org/3/library/datetime.html#datetime.datetime)。 (你*也*仍然可能有時區問題,無論指定'UTC'到'strptime'。) – user2357112

回答

1

明確的答案時區的問題。 time.strptime,依靠posix strptime返回所有情況下的本地時間。

請仔細閱讀strptime的文檔,你會注意到,雖然%Z支持的格式字符「字段的解析,但tm沒有域改變

一般來說,一個POSIX實現strptime確實支持%Z將只支持UTC,GMT或系統tzname(可從time.tzname以python獲得)的值。但是它不會改變基於它們的返回值

相關問題