我正在以"2009-05-28T16:15:00"的格式获取日期时间字符串(我相信这是ISO 8601).一个hackish选项似乎是使用time.strptime并将元组的前六个元素传递给datetime构造函数来解析字符串,如:
datetime.datetime(*time.strptime("2007-03-04T21:08:12", "%Y-%m-%dT%H:%M:%S")[:6])
Run Code Online (Sandbox Code Playgroud)
我无法找到一种"更清洁"的方式来做到这一点.有吗?
我有一个'2009/05/13 19:19:30 -0400'形式的日期字符串.对于尾随时区规范,似乎以前版本的Python可能支持strptime中的%z格式标记,但2.6.x似乎已经删除了它.
将此字符串解析为日期时间对象的正确方法是什么?
我必须将时区感知字符串转换为python datetime对象.
例如2012-11-01T04:16:13-04:00.
我发现有一个dateutil模块具有解析函数来执行它,但我真的不想使用它,因为它添加了一个依赖项.
那我该怎么办呢?我尝试了类似下面的东西,但没有运气.
datetime.datetime.strptime("2012-11-01T04:16:13-04:00", "%Y-%m-%dT%H:%M:%S%Z")
Run Code Online (Sandbox Code Playgroud) 给定这个字符串:"Fri, 09 Apr 2010 14:10:50 +0000"如何将其转换为datetime对象?
做了一些阅读后,我觉得这应该有用,但它不...
>>> from datetime import datetime
>>>
>>> str = 'Fri, 09 Apr 2010 14:10:50 +0000'
>>> fmt = '%a, %d %b %Y %H:%M:%S %z'
>>> datetime.strptime(str, fmt)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.6/_strptime.py", line 317, in _strptime
(bad_directive, format))
ValueError: 'z' is a bad directive in format '%a, %d %b %Y %H:%M:%S %z'
Run Code Online (Sandbox Code Playgroud)
应该注意的是,这没有问题:
>>> from datetime import datetime
>>>
>>> str …Run Code Online (Sandbox Code Playgroud)