【问题标题】:How to convert epoch time to time如何将纪元时间转换为时间
【发布时间】:2019-04-09 20:50:05
【问题描述】:

我有这样的纪元时间1488445200000 我需要将其转换为 datetime 变量。我试过了

from datetime import datetime
dt = datetime.fromtimestamp(1488445200000 // 3600)
dt

我明白了

datetime.datetime(1983, 2, 7, 10, 10)

但结果似乎不对(正确的应该是 2017 年 3 月 2 日 10:00:00 AM GMT+01:00)……我该怎么办?

如果我需要做的不仅仅是一个值 1488445200000 而是数据框中的一列。我必须循环吗?还是有矩阵运算?

【问题讨论】:

标签: python datetime time epoch


【解决方案1】:

您的时间戳以毫秒为单位,而 datetime 预计为秒。除以 1000 即可:

$ python3 
Python 3.7.0 (default, Jun 29 2018, 20:13:13) 
[Clang 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from datetime import datetime
>>> dt = datetime.fromtimestamp(1488445200000 // 1000)
>>> dt
datetime.datetime(2017, 3, 2, 10, 0)

【讨论】:

  • 太棒了!谢谢。还有一个问题。我需要为数据框中的列执行此操作。我必须循环吗?还是有矩阵运算?
  • 我对数据帧一无所知。循环可能是最简单的,但您也可以使用类似的方法应用 fromtimestamp 函数:pandas.pydata.org/pandas-docs/version/0.23/generated/…
  • @MattJohnson 我没有?
  • @MattJohnson 啊,有道理。没问题:)
【解决方案2】:

试试这个:

使用datetime模块:

from datetime import datetime
ts = int(1488445200000//1000)
print(datetime.utcfromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S'))

【讨论】:

    猜你喜欢
    • 2012-08-12
    • 2013-06-27
    • 2020-01-16
    • 2012-09-06
    • 2014-05-03
    • 2018-05-28
    • 2011-06-21
    • 2021-07-09
    • 2012-01-30
    相关资源
    最近更新 更多