【问题标题】:Python : Convert time format to unix_timeformatPython:将时间格式转换为 unix_timeformat
【发布时间】:2012-08-01 09:46:45
【问题描述】:

我有这样的时间格式

t = "2012-03-20T08:31:00-05:00"

我可以像这样使用 RegEx 提取时间内容。

p = re.compile("(\d{4})\-(\d\d)\-(\d\d)T(\d\d):(\d\d):(\d\d)[\-|+]\d\d:\d\d")
matches = p.findall(t)

但我想知道是否有一种方法可以不使用 RegEx 直接将此格式转换为 unix_timestamp ?是否有日历库或类似的东西?

【问题讨论】:

    标签: python time-format


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      使用time.strptime:

      time.strptime(t, "%Y-%m-%dT%H:%M:%S-%Z")
      

      不幸的是,这似乎不适用于数字时区偏移。 python-dateutil 应该可以处理你的格式:

      dateutil.parser.parse(t)
      

      或者,您可以在数字偏移量之前拆分字符串:

      t, offset_sign, offset = t[:-6], t[-6], t[-5:]
      t = time.strptime(t, "%Y-%m-%dT%H:%M:%S")
      offset = time.strptime(offset, "%H:%M")
      

      【讨论】:

      • ValueError: 时间数据 '2012-03-20T08:31:00-05:00' 与格式 '%Y-%m-%dT%H:%M:%S-% 不匹配Z'
      • @anjanesh 是的,它似乎无法处理数字时区。查看我的更新。
      【解决方案3】:

      使用时间模块中的strptime

      【讨论】:

        猜你喜欢
        • 2014-09-02
        • 2019-03-04
        • 2018-07-28
        • 2014-03-16
        • 1970-01-01
        • 1970-01-01
        • 2018-05-08
        • 1970-01-01
        • 2013-08-27
        相关资源
        最近更新 更多