你timestamp
是而不是'經典的'Unix時間戳(自1970年1月1日以來的秒數),如表達式所示毫秒。
你可以這樣翻譯的:
import datetime
timestamp_with_ms = 1491613677888
# We separate the 'ordinary' timestamp and the milliseconds
timestamp, ms = divmod(timestamp_with_ms, 1000)
#1491613677 888
# We create the datetime from the timestamp, we must add the
# milliseconds separately
dt = datetime.datetime.fromtimestamp(timestamp) + datetime.timedelta(milliseconds=ms)
formatted_time = dt.strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
# With Python 3.6, you could use:
# formatted_time = dt.isoformat(sep=' ', timespec='milliseconds')
print(formatted_time)
# 2017-04-08 03:07:57.888
編輯:我沒有注意到fromtimestamp
接受浮點值。所以,我們可以簡單地做:
import datetime
timestamp_with_ms = 1491613677888
dt = datetime.datetime.fromtimestamp(timestamp_with_ms/1000)
formatted_time = dt.strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
# With Python 3.6, you could use:
# formatted_time = dt.isoformat(sep=' ', timespec='milliseconds')
print(formatted_time)
# 2017-04-08 03:07:57.888
不能重現(python2.7 + 3) – Arount
你在哪裏得到最終的888在你的時間戳?第一部分'1491613677'是2017-04-08T01:07:57 + 00:00,這可能是你想要的。有了它,你的代碼完美地工作。 –
你是從一些以毫秒輸出的函數得到它的嗎? –