1

我在 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 中都尝试过这些

4

1 回答 1

2

datetime.replace返回一个的日期时间实例。

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

这会导致您正在经历的不平等。

要使两个示例相等,您必须将详细示例编辑为如下所示:

>>> a = datetime.fromtimestamp(1373576406)
>>> a = a.replace(tzinfo=tzutc())
>>> a.strftime('%s')
'1373576406
于 2013-07-30T13:17:54.357 回答