2013-07-02 199 views
2

以下:日期時間的strftime不輸出正確的時間戳

>>> from dateutil.parser import parse 
>>> parse("2013-07-02 00:00:00 -0000") 
datetime.datetime(2013, 7, 2, 0, 0, tzinfo=tzutc()) 

顯示的時間應該是在UTC 2013年7月2日上午12點。

但是:

>>> parse("2013-07-02 00:00:00 -0000").strftime("%s") 
'1372744800' 

1372744800實際上是星期二,2013年7月2日06:00:00 UTC,這是不對的。很困惑。

+0

你從哪裏導入'parse'? –

+0

新增進口 –

+0

無法複製;我得到了'1372741200'(一小時前)。很確定這是一個時區問題。 –

回答

2

看到這個問題:Convert python datetime to epoch with strftime

的Python實際上並不支持%S作爲參數傳遞給STRFTIME(如果你 檢查在 http://docs.python.org/library/datetime.html#strftime-and-strptime-behavior 它不在列表中),它的工作的唯一原因是因爲Python 正在將信息傳遞到您的系統的strftime,它使用您的本地時區 。

+0

謝謝,這工作。人們說python是一種比PHP更好的語言(我來自哪裏),但是在PHP中使用DateTime的時候,這並不會太困難或者令人困惑。 –

+0

您應該簽出[pytz](http://pytz.sourceforge.net/)和[delorean](https://github.com/myusuf3/delorean)。這些使得日期時間變得很容易。另外[檢查這個線程上reddit!](http://www.reddit.com/r/learnpython/comments/1c2dra/what_are_the_best_practices_to_work_with_time_in/) – kissgyorgy