2013-07-02 141 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