如何处理这种格式的时间戳?
How do I process this format of timestamp?
如何处理像
这样的输出
"TimeStamp: 1635251181000"
转换为 Python 中的可读格式。我试过 datetime.fromtimestamp()
但我得到了类似
的错误
OSError: [Errno 22] Invalid argument
这是一个 Unix time_t
值(自 1/1/1970 以来的秒数),乘以 1000 包括毫秒。它与 time.time()*1000
返回的值相同。所以:
>>> t = 1635251181000
>>> time.ctime(t/1000)
'Tue Oct 26 05:26:21 2021'
>>>
from datetime import datetime
timestamp = your_timestamp
dt_object = datetime.fromtimestamp(timestamp/1000)
print("dt_object =", dt_object)
print("type(dt_object) =", type(dt_object))
要将时间戳转换为日期时间格式,您应该将时间戳除以 1000。
from datetime import datetime
ts = 1635251181000
utc_time = datetime.utcfromtimestamp(ts/1000)
local_time = datetime.fromtimestamp(ts/1000)
print(local_time)
print(utc_time)
@Tim 的回答提供了错误的确切原因。有关这方面的更多信息,请参阅此 answer。尽管它与Java有关,但事实是这样。
如果你的时间戳长度是13,那么它就是毫秒时间戳。直到 2286
结束都是如此 :-) 。因此,如果您希望时间戳发生变化,最好检查并设置它。
如果您的输入像 "TimeStamp: 1635251181000"
那么试试这个
from datetime import datetime
your_in = "TimeStamp: 1635251181000"
your_ts = your_in.split("TimeStamp:")[1].strip()
if len(your_ts)> 10:
your_ts= int(your_ts[:10])
your_dt = datetime.fromtimestamp(your_ts)
如何处理像
这样的输出"TimeStamp: 1635251181000"
转换为 Python 中的可读格式。我试过 datetime.fromtimestamp()
但我得到了类似
OSError: [Errno 22] Invalid argument
这是一个 Unix time_t
值(自 1/1/1970 以来的秒数),乘以 1000 包括毫秒。它与 time.time()*1000
返回的值相同。所以:
>>> t = 1635251181000
>>> time.ctime(t/1000)
'Tue Oct 26 05:26:21 2021'
>>>
from datetime import datetime
timestamp = your_timestamp
dt_object = datetime.fromtimestamp(timestamp/1000)
print("dt_object =", dt_object)
print("type(dt_object) =", type(dt_object))
要将时间戳转换为日期时间格式,您应该将时间戳除以 1000。
from datetime import datetime
ts = 1635251181000
utc_time = datetime.utcfromtimestamp(ts/1000)
local_time = datetime.fromtimestamp(ts/1000)
print(local_time)
print(utc_time)
@Tim 的回答提供了错误的确切原因。有关这方面的更多信息,请参阅此 answer。尽管它与Java有关,但事实是这样。
如果你的时间戳长度是13,那么它就是毫秒时间戳。直到 2286
结束都是如此 :-) 。因此,如果您希望时间戳发生变化,最好检查并设置它。
如果您的输入像 "TimeStamp: 1635251181000"
那么试试这个
from datetime import datetime
your_in = "TimeStamp: 1635251181000"
your_ts = your_in.split("TimeStamp:")[1].strip()
if len(your_ts)> 10:
your_ts= int(your_ts[:10])
your_dt = datetime.fromtimestamp(your_ts)