【问题标题】:How can I convert epoch datetime in python? [duplicate]如何在 python 中转换纪元日期时间? [复制]
【发布时间】:2018-12-11 19:33:15
【问题描述】:

我正在调用 api 并以这种格式 /Date(1500462505221)/ 获取日期时间字段。我的动机是将其转换为这种格式 "2018-05-11 23:25:47" 。我该如何做到这一点?

【问题讨论】:

    标签: python-3.x datetime datetime-format epoch


    【解决方案1】:

    您可以使用日期时间库让生活变得简单:

    from datetime import datetime
    
    datetime.fromtimestamp(1485714600).strftime("%Y-%m-%d %I:%M:%S")
    

    【讨论】:

    • 我忘了说。是否可以不进行任何字符串操作?任何将字符串按原样转换为 datetime 的库?
    • 你能给我一个你想在日期时间转换的字符串的例子吗?
    • '/日期(1506342842815)/'
    • 导入时间 time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(1506342842815/1000.))
    • 所以基本上我需要修剪掉“/Date(”和“)/”?
    【解决方案2】:

    所以这是我将时间转换为人类可读格式的方法,也许这会有所帮助:

    import time
    time.strftime("%a, %d %b %Y %H:%M:%S %Z", time.localtime(1500462505221))
    

    time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(1500462505221))
    

    还有一件事我通过删除以下最后三位数字来尝试这个示例并将其作为输出:

    >>time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(1500462505))
    >>'2017-07-19 11:08:25'
    

    你也可以参考这个链接: [https://www.systutorials.com/241698/how-to-convert-epoch-timestamp-to-human-readable-date-format-in-python/

    【讨论】:

    • 有没有不做任何字符串操作/修改的解决方案?
    • 我在没有任何字符串修改的情况下尝试了它,但这不能正常工作。事实上修剪字符串是一个不错的选择。
    【解决方案3】:

    您可以使用 timere 模块执行类似操作:

    import re, time
    
    epoch_str = "/Date(1500462505221)/"
    date = re.match(r'/Date\((\d+)\)/', epoch_str).groups()[0]
    epoch_fmt = time.strftime('%Y-%M-%d %H:%M:%S', time.gmtime(float(date)))
    # Or you can do
    # date_ = time.gmtime(float(date))
    # epoch_fmt = '{}-{}-{} {}:{}:{}'.format(date_.tm_year, date_.tm_mon, date_.tm_mday, date_.tm_hour, date_.tm_min, date_.tm_sec) 
    print(epoch_fmt)
    # 49517-20-07 04:20:21
    

    【讨论】:

      猜你喜欢
      • 2020-02-25
      • 2017-02-28
      • 2019-02-04
      • 1970-01-01
      • 2016-06-08
      • 2010-10-18
      • 2019-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多