在Python中,Firebase日期时间转换错误

3

能有人解释一下我如何从Firebase时间戳中计算出"%Y%m%d%H%M%S%f"的时间吗?我收到了一个错误:

有符号整数大于最大值

当我执行以下操作时:

from datetime import datetime
def formatdatetime(sfd):
  ts = datetime(sfd)
  print(datetime.strftime("%Y%m%d%H%M%S%f", ts))

formatdatetime(1521508504583)

我猜测我没有正确读取毫秒数?
2个回答

1
首先,您需要使用 datetime.datetime.fromtimestampdatetime.datetime.utcfromtimestamp 来解析时间戳。
其次,我认为您分享的时间戳是以毫秒为单位而不是秒,因此您应该将其除以 1000
例如:
>>> dt = 1521508504583

>>> datetime.datetime.fromtimestamp(dt / 1000)
datetime.datetime(2018, 3, 19, 18, 15, 4)

>>> datetime.datetime.utcfromtimestamp(dt / 1000)
datetime.datetime(2018, 3, 20, 1, 15, 4)

0

输入的整数太大了。 OverflowError:Python int太大,无法转换为C long datetime

Raise OverflowError instead of ValueError if the timestamp is out of the range of values supported by the platform C gmtime() function.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接