我从Binance-API收到了服务器时间,现在我尝试使用它,看起来是这样的:
{
"serverTime": 1518440400000
}
问题是,我如何从这个时间戳计算出日期?
我尝试过
import datetime
print(datetime.datetime.fromtimestamp(
int("1518308894652")).strftime('%Y-%m-%d %H:%M:%S'))
但是日期无效。
你有想法,还是它太具体了?谢谢!
我从Binance-API收到了服务器时间,现在我尝试使用它,看起来是这样的:
{
"serverTime": 1518440400000
}
问题是,我如何从这个时间戳计算出日期?
我尝试过
import datetime
print(datetime.datetime.fromtimestamp(
int("1518308894652")).strftime('%Y-%m-%d %H:%M:%S'))
但是日期无效。
你有想法,还是它太具体了?谢谢!
您可以使用这个:
from datetime import datetime
datetime.fromtimestamp(int("1518308894652"))
但是Python显示年份超出范围(考虑到它显示的是50087,这是可以理解的)。因此,我怀疑serverTime
不是正常时间戳。
但是假设您收到的响应确实是时间戳,那么您无需进行任何其他转换,只需将字符串转换为整数即可。
原来文档中写着:“所有与时间和时间戳相关的字段都以毫秒为单位。” 因此,只需将响应除以1000即可:datetime.fromtimestamp(int("1518308894652")/1000)
。 来源
当使用datetime.fromtimestamp时,你的响应时间是毫秒级别,但该函数需要秒数。
import datetime
print(datetime.datetime.fromtimestamp(1518308894652/1000))
# 2018-02-10 19:28:14.652000
通过指定毫秒作为单位,Pandas 可以完美地处理此问题。
import pandas as pd
pd.to_datetime(1518440400000, unit='ms')