我正在尝试编写一对函数,dt
和ut
,它们在正常的 unix 时间(自 1970-01-01 00:00:00 UTC 以来的秒数)和 Python 日期时间对象之间来回转换。
如果dt
和ut
是正确的逆,那么这段代码将打印两次相同的时间戳:
import time, datetime
# Convert a unix time u to a datetime object d, and vice versa
def dt(u): return datetime.datetime.fromtimestamp(u)
def ut(d): return time.mktime(d.timetuple())
u = 1004260000
print u, "-->", ut(dt(u))
唉,第二个时间戳比第一个少 3600 秒(一个小时)。我认为这只发生在非常特殊的 unixtime 上,也许在夏令时跳过的那个小时内。但是有没有办法写出来dt
,ut
所以它们是彼此真正的倒数?