2016-09-17 98 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