检查日期字符串是否为UTC格式



我有一个日期字符串,如"2011-11-06 14:00:00+00:00"。是否有一种方法来检查这是否是UTC格式?我尝试使用utc = datetime.strptime('2011-11-06 14:00:00+00:00','%Y-%m-%d %H:%M%S+%z)将上述字符串转换为datetime对象,以便我可以将其与pytz进行比较。在格式'%Y-%m-%d %H:% m %S+%z'中,'z'是一个坏指令'

如何检查日期字符串是否是UTC格式?请举个例子。

谢谢

一个简单的正则表达式就可以:

>>> import re
>>> RE = re.compile(r'^d{4}-d{2}-d{2}[ T]d{2}:d{2}:d{2}[+-]d{2}:d{2}$')
>>> bool(RE.search('2011-11-06 14:00:00+00:00'))
True

你所说的" in UTC format "实际上是指ISO-8601吗?这是一个很常见的问题。

格式字符串的问题是strptime只是将解析时间字符串的工作传递给c的strptime,不同风格的c接受不同的指令。在您的情况下(和我的情况下,似乎),%z指令是不被接受的。

在文档页面中有一些模棱两可的地方。datetime.datetime.strptime文档指向time.strptime的格式规范,其中不包含小写的%z指令,并指示

在某些平台上可能支持其他指令,但只有这里列出的指令具有ANSI c标准化的含义。

但是它也指向这里包含小写的%z,但是重申

支持的完整格式代码集因平台而异,因为Python调用平台C库的strftime()函数,并且平台差异很常见。

还有一个关于这个问题的bug报告。

相关内容

  • 没有找到相关文章

最新更新