python从字符串获取并转换为日期
我想在python中将下面的字符串转换为date,如何进行转换python从字符串获取并转换为日期,python,Python,我想在python中将下面的字符串转换为date,如何进行转换 >>> d= "1997-01-29 00:00:00+00:00" >>> import datetime >>> datetime.datetime.strptime(d, '%Y-%m-%d').date() Traceback (most recent call last): File "<stdin>", line 1, in <module>
>>> d= "1997-01-29 00:00:00+00:00"
>>> import datetime
>>> datetime.datetime.strptime(d, '%Y-%m-%d').date()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/_strptime.py", line 328, in _strptime
data_string[found.end():])
ValueError: unconverted data remains: 00:00:00+00:00
d=“1997-01-29 00:00:00+00:00”
>>>导入日期时间
>>>datetime.datetime.strtime(d,'%Y-%m-%d').date()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/lib/python2.7/_strptime.py”,第328行,在_strptime中
数据_字符串[found.end():])
ValueError:未转换的数据保留:00:00:00+00:00
这个错误非常明确,因为根据您试图转换的内容,您的字符串中有一个未覆盖的部分是不期望的 您提供了以下信息:
d = "1997-01-29 00:00:00+00:00"
您正在尝试基于此模式进行转换:
'%Y-%m-%d'
错误是:
ValueError: unconverted data remains: 00:00:00+00:00
因此,您应该根据转换的方式简单地去掉时间部分。我只是简单地将您的字符串更改为以下内容:
>>> d= "1997-01-29"
>>> datetime.datetime.strptime(d, '%Y-%m-%d').date()
datetime.date(1997, 1, 29)
要么对输入进行切片,要么使用实际表示正在解析的数据的格式。python的哪个版本?python strTime不会喜欢时区偏移块中的冒号。再看一看,你想要什么日期?字符串文本中的日期部分(在这种情况下,您可以只解析空格而忽略字符串的其余部分)?或者,您需要确定在执行这一代码的机器上,DATESTIME字符串所代表的时间点是哪一天(在这种情况下,您需要考虑整件事情,包括时区偏移)?回答我自己的问题:Python 2.7。没错,python strTime不能直接处理这种格式的时区偏移。有关解决方法的想法,请参见上面的链接答案。但我认为,在决定实施之前,您应该首先更清楚地说明您的需求。您能补充一些解释吗?
d= "1997-01-29 00:00:00"
import datetime
print datetime.datetime.strptime(d, "%Y-%m-%d %H:%M:%S")