我在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
中都尝试过这些答案 0 :(得分:2)
datetime.replace
会返回新日期时间实例。
在您的第一个示例中,您忽略了datetime.replace
的返回值,然后在旧的日期时间实例上执行datetime.strftime
。
这会导致您遇到的不平等。
要使两个示例相等,您必须编辑详细的示例:
>>> a = datetime.fromtimestamp(1373576406)
>>> a = a.replace(tzinfo=tzutc())
>>> a.strftime('%s')
'1373576406