Python datetime奇怪的行为

时间:2013-07-30 13:15:43

标签: python datetime python-2.7 python-3.x

我在Python中尝试这个。有什么区别:

>>> a = datetime.fromtimestamp(1373576406)
>>> a.replace(tzinfo=tzutc())
datetime.datetime(2013, 7, 12, 0, 0, 6, tzinfo=tzutc())
>>> a.strftime('%s')
'1373576406'

>>> datetime.fromtimestamp(1373576406).replace(tzinfo=tzutc()).strftime('%s')
'1373580006'

我真的不明白为什么会这样。这两个时间戳不应该相等吗?

我在Python 3.3.2和Python 2.7.1

中都尝试过这些

1 个答案:

答案 0 :(得分:2)

datetime.replace会返回日期时间实例。

在您的第一个示例中,您忽略了datetime.replace的返回值,然后在旧的日期时间实例上执行datetime.strftime

这会导致您遇到的不平等。

要使两个示例相等,您必须编辑详细的示例:

>>> a = datetime.fromtimestamp(1373576406)
>>> a = a.replace(tzinfo=tzutc())
>>> a.strftime('%s')
'1373576406