2016-09-17 56 views
1

我有一个Cocoa时间戳(零时间为2001年1月1日00:00:00 UTC),我需要在Python中进行转换。当我使用下面的代码时,它假定有一个Unix时间戳输入。除了在几秒钟内增加31年(不到十亿秒......)转换时间的最佳方式是什么?在Python中转换可可时间戳

import datetime 
print(datetime.datetime.fromtimestamp(int("495759456")).strftime('%Y-%m-%d %H:%M:%S')) 

输出这行代码是“1985年9月16日16时12分03秒”

回答

1

将这样的事情对你的工作:

from datetime import datetime 

unix = datetime(1970, 1, 1) # UTC 
cocoa = datetime(2001, 1, 1) # UTC 

delta = cocoa - unix # timedelta instance 

timestamp = datetime.fromtimestamp(int("495759456")) + delta 

print(timestamp.strftime('%Y-%m-%d %H:%M:%S')) 

我没有指定两个时间开始时间的时区信息,因为它们在同一个区域中,所以我假定在计算差异时使用哪一个应该不重要。要转换时间戳字符串,您可能需要根据您的时区进行调整,如果它与生成字符串的时区不同。

以上代码产生2016-09-16 15:57:36

+0

这很好用!谢谢 :) – Bryan