【问题标题】:Compute Date out of Timestamp from Binance-API (Python)从 Binance-API (Python) 计算时间戳之外的日期
【发布时间】:2018-07-23 07:02:51
【问题描述】:

我从 Binance-API 收到服务器时间,我尝试使用它,它看起来像这样:

{
  "serverTime": 1518440400000
}

问题是,我怎样才能从这张邮票中计算出日期?

我试过了

import datetime

print(datetime.datetime.fromtimestamp(
       int("1518308894652")).strftime('%Y-%m-%d %H:%M:%S'))

但日期无效。

你有什么想法,还是具体的? 谢谢!

【问题讨论】:

  • 1518440400000 是您返回的实际时间戳吗?如果是这样,那意味着服务器在 50087 年运行......但假设这只是一个例子,大多数语言应该有一些功能。您使用什么语言?
  • 这是一样的,我得到的。我用python。
  • 如果您发布了 Binance API 请求,问题会更加有用。

标签: python api date timestamp


【解决方案1】:

你可以用这个:

from datetime import datetime
datetime.fromtimestamp(int("1518308894652"))

但是 python 说年份超出范围(可以理解,考虑到它说它是 50087)。所以我怀疑serverTime不是正常的时间戳。

但假设您得到的响应是时间戳,所以除了将字符串转换为 int 之外,您不需要进行任何其他转换。

编辑:

原来文档说“所有时间和时间戳相关的字段都以毫秒为单位。”所以只需将响应除以 1000 就可以了:datetime.fromtimestamp(int("1518308894652")/1000)Source

【讨论】:

  • 我试过了,但是收到“ValueError: year 50083 is out of range”:/
  • @cosmonaut 我用修复编辑了这个问题。 Binance API 文档给出的时间以毫秒为单位,而 python 需要一个以秒为单位的值。
  • @AidanGawronski 我不知道您是指接受的答案被切换的事实,还是我的答案本身。我非常抱歉它被切换了,我不是故意的。我在进一步研究问题时写了一个简短的答案,计划编辑我的答案以提供有关该问题的更多信息,并且当时您发布了答案。但我完全独立地发现了这一切,我只是用谷歌搜索了“Binance API”。
  • 很公平。我相信你。
【解决方案2】:

当 datetime.fromtimestamp 需要几秒钟时,您的回复是 milliseconds

import datetime

print(datetime.datetime.fromtimestamp(1518308894652/1000))

# 2018-02-10 19:28:14.652000

【讨论】:

    猜你喜欢
    • 2021-09-08
    • 2021-06-12
    • 1970-01-01
    • 2017-05-31
    • 2015-04-25
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多