将浮点值列表转换为日期

时间:2013-09-23 19:21:27

标签: python date datetime

我有一个日期列表,写为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]))

所以我需要将我的完整浮动日期列表基本上改为实际日期。我错过了什么?

编辑:添加了一个示例列表

2 个答案:

答案 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()将浮点数格式化为不带小数点的字符串,以便于解析。

相关问题