我有一个日期列表,写为20130710.0
问题我正在绘制日期,所以他们需要保留在列表中,所以我不知道如何获取我所知道的代码(用于转换一个一次)转换整个字符串
这是我的列表示例:
[20130710.0, 20130802.0, 20130806.0, 20130807.0, 20130809.0]
以下是我如何从列表中转换单个值
from datetime import datetime, timedelta
intDate = "20130713.0"
ActDate = datetime(year=int(s[0:4]), month=int(s[4:6]), day=int(s[6:8]))
所以我需要将我的完整浮动日期列表基本上改为实际日期。我错过了什么?
编辑:添加了一个示例列表
答案 0 :(得分:0)
只需使用list comprehension:
In [10]: intDates = ["20130713.0", "20130715.0", "20130718.0"]
In [11]: actDates = [datetime(year=int(s[0:4]), month=int(s[4:6]), day=int(s[6:8])) for s in intDates]
In [12]: actDates
Out[12]:
[datetime.datetime(2013, 7, 13, 0, 0),
datetime.datetime(2013, 7, 15, 0, 0),
datetime.datetime(2013, 7, 18, 0, 0)]
答案 1 :(得分:0)
使用列表推导,并使用datetime.strptime()
来解析您的值(转换为字符串):
intDates = [20130710.0, 20130802.0, 20130806.0]
[datetime.strptime(format(d, '.0f'), '%Y%m%d') for d in intDates]
演示:
>>> from datetime import datetime
>>> intDates = [20130710.0, 20130802.0, 20130806.0]
>>> [datetime.strptime(format(d, '.0f'), '%Y%m%d') for d in intDates]
[datetime.datetime(2013, 7, 10, 0, 0), datetime.datetime(2013, 8, 2, 0, 0), datetime.datetime(2013, 8, 6, 0, 0)]
我使用format()
将浮点数格式化为不带小数点的字符串,以便于解析。