我不能为我的生活弄清楚如何转换时间戳的形式1433140740000+0200
到datetime
对象或任何人类可读的表示。另外,这具体是什么格式?我假设+0200
代表一个时区。
我似乎只能找到关于没有时区的时间戳的问题,例如这个答案,其中int("1433140740000+0200")
会给我一个错误。任何帮助都是感激的。谢谢!
Edit:正如在评论中提到的,对从中获取这些值的API的进一步检查揭示了其他具有不同值的时间戳,我认为这些值表示时区。例如:315529200000+0100
。整行数据看起来像这样:"ArrivalTime": "/Date(1433051640000+0200)/"
,完整的响应可以在这里找到。
第二次编辑:据我所知,时间戳是unix时间戳,但它们以毫秒为单位(因此后面有零),+0200
表示时区UTC+02:00。因此,现在,我将删除多余的零和时区,并按照链接问题所示进行转换,然后再手动添加时区。+0100的时间戳对我来说仍然是个谜,但我发现它们总是同一个日期,1980年1月1日中午12点。它们也有不同的标识符:ActualTime
,而不是其他的ArrivalTime
。不管怎样,谢谢你们的帮助!
您可以使用字符串分割来删除时区
import datetime
intstring = int( ('1433140740000+0200').split('+')[0])
print(
datetime.datetime.fromtimestamp(intstring/1000).strftime('%Y-%m-%d %H:%M:%S')
)
我必须把它改成这个才能正常工作
intstring/1000