【问题标题】:Datetime format for converting a string data into UTC based datetime用于将字符串数据转换为基于 UTC 的日期时间的日期时间格式
【发布时间】:2016-11-02 19:02:25
【问题描述】:

我有这个日期数据:

timestamp="2016-11-01T18:18:46.5035795Z"

我正在寻找正确的 dtfmt,以便我可以将上述数据转换为适当的数据时间值,并将 UTC 设置为时区 (tzinfo)

dt = datetime.datetime.strptime(timestamp, dtfmt)

有人可以帮忙吗?谢谢

【问题讨论】:

标签: python datetime type-conversion


【解决方案1】:

dateutil 模块非常适合这种情况

pip install python_dateutil

然后

>>> from dateutil import parser
>>> parser.parse(timestamp)
datetime.datetime(2016, 11, 1, 18, 18, 46, 503579, tzinfo=tzutc())

如果没有 dateutil 模块,您必须使用正则表达式去除字符串微秒部分中的多余字符,然后使用与字符串匹配的正确日期格式将其转换为 datetime 对象

>>> import re
>>> timestamp = re.findall('.*[0-9]{6}', timestamp)[0] + 'Z'
>>> datetime.strptime(timestamp, '%Y-%m-%dT%H:%M:%S.%fZ')
datetime.datetime(2016, 11, 1, 18, 18, 46, 503579)

【讨论】:

  • 谢谢丹尼迪!还有一个问题,当我执行解析器部分时,我得到的结果是: datetime.datetime(2016, 11, 1, 18, 18, 46, 503579, tzinfo=tzlocal()) 我怎样才能强制它到 tzutc() ?
猜你喜欢
  • 1970-01-01
  • 2011-06-13
  • 1970-01-01
  • 2015-10-24
  • 1970-01-01
  • 2020-07-21
  • 2012-11-08
  • 1970-01-01
  • 2014-08-10
相关资源
最近更新 更多