它出现在你的值timestamps
序列是不是字符串;他们已经是datetime
对象。您不需要进一步解析这些。您也可以混合使用字符串和datetime
物体;你看到的异常被抛出是因为至少其中一个值 in timestamps
is a datetime
已经有实例了。
只需致电datetime.strftime() method在所有对象上ts
格式化它们:
date_strings = [d.strftime('%m-%d-%Y') for d in timestamps]
Demo:
>>> import datetime
>>> timestamps = [datetime.datetime(2016, 11, 21, 0, 0), datetime.datetime(2016, 11, 22, 0, 0), datetime.datetime(2016, 11, 23, 0, 0)]
>>> [d.strftime('%m-%d-%Y') for d in timestamps]
['11-21-2016', '11-22-2016', '11-23-2016']
如果您有mix的字符串和datetime
中的实例timestamps
,你必须做一些额外的处理:
def convert_as_needed(ts):
try:
# parse strings
datetime.strptime(ts, '%Y-%m-%d %H:%M:%S')
except TypeError:
# assume it is already a datetime object
return ts
dates = map(convert_as_needed, timestamps)
date_strings = [d.strftime('%m-%d-%Y') for d in dates]