【问题标题】:How to get date time from string timestamp如何从字符串时间戳获取日期时间
【发布时间】:2021-03-22 05:53:59
【问题描述】:

字符串时间戳为:

lastStartTimestamp = '2021-03-21T06:51:48.332-07:00'

我继续声明datetime 对象

import datetime
date_time_obj = datetime.datetime.strptime(lastStartTimestamp, '%Y-%m-%dT%H:%M:%S.%fZ')

但是代码失败了

ValueError: time data '2021-03-21T06:51:48.332-07:00' does not match format '%Y-%m-%dT%H:%M:%S.%fZ'

有没有办法让datetime 工作?

【问题讨论】:

  • 好的,所以您有一个时间戳字符串'2021-03-21T06:51:48.332-07:00',并且您希望'%Y-%m-%dT%H:%M:%S.%fZ' 的格式与之对应。为什么?一步一步地过一遍,找出你希望字符串的哪一部分与%Y等对应,直到找到不对齐的部分。确保考虑字符串的常量部分以及格式代码。如有必要,请回documentation

标签: python datetime time


【解决方案1】:
lastStartTimestamp = '2021-03-21T06:51:48.332-07:00'
import datetime
dt = datetime.datetime.fromisoformat(lastStartTimestamp)
date_time_obj = datetime.datetime.strptime(lastStartTimestamp, '%Y-%m-%dT%H:%M:%S.%f%z')
print(dt)
print(date_time_obj)

输出

2021-03-21 06:51:48.332000-07:00
2021-03-21 06:51:48.332000-07:00

注意,你可以使用datetime.datetime.fromisoformat()

【讨论】:

    【解决方案2】:

    实际上,@buran 的回答有效。但是,如果没有,您可以使用dateutil.parser 中的parse() 方法来解析任意日期时间字符串:

    from dateutil.parser import parse
    lastStartTimestamp = '2021-03-21T06:51:48.332-07:00'
    date_time_obj = parse(lastStartTimestamp) # 2021-03-21 06:51:48.332000-07:00
    

    【讨论】:

      【解决方案3】:

      使用dateparser 库。

      pip install dateparser
      

      这是一个小sn-p

      import dateparser
      lastStartTimestamp = '2021-03-21T06:51:48.332-07:00'
      dateparser.parse(lastStartTimestamp)
      

      datetime.datetime(2021, 3, 21, 6, 51, 48, 332000, tzinfo=)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-03
        • 1970-01-01
        • 2014-03-14
        • 1970-01-01
        相关资源
        最近更新 更多