首页 > 解决方案 > 将时间戳转换为日期时出现 errno 22

问题描述

我正在尝试将从代码 API 获得的时间戳转换为人类可读的日期。我的代码如下;你能帮我找出我做错了什么吗?

谢谢!!

import ccxt
from datetime import datetime
from datetime import timezone
import pytz
kraken = ccxt.kraken()
kraken_price = kraken.fetch_ticker('BTC/USD')
kraken_time = kraken_price['timestamp']
kraken_date = datetime.fromtimestamp(int(kraken_time)).strftime('%y-%m-%d %H:%M:%S')/1000
print(kraken_date)
print('Ask price for Kraken ${}'.format(kraken_price['ask']))

PS我在python中这样做

标签: pythonunix-timestamp

解决方案


我不知道你是怎么得到error 22的,但是当我运行它时,我得到了错误

 ValueError: year 53354 is out of rang

因为你必须划分原始值

 kraken_time = kraken_price['timestamp']/1000

而不是分割你得到的字符串strftime()


import ccxt
from datetime import datetime
from datetime import timezone
import pytz

kraken = ccxt.kraken()
kraken_price = kraken.fetch_ticker('BTC/USD')
kraken_time = kraken_price['timestamp']/1000
kraken_date = datetime.fromtimestamp(int(kraken_time)).strftime('%y-%m-%d %H:%M:%S')
print(kraken_date)
print('Ask price for Kraken ${}'.format(kraken_price['ask']))

结果:

21-05-21 01:04:56
Ask price for Kraken $41232.8

顺便说一句:我记得这error 22可能意味着打开文件有问题,我在你的代码中看不到任何文件。或者这可能意味着从服务器下载数据存在问题。但是您没有显示完整的错误消息,因此我们无法检查是什么导致了问题。


推荐阅读