0

我有一个写成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]))

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

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

4

2 回答 2

0

只需使用列表理解

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)]
于 2013-09-23T19:28:07.657 回答
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()将浮点数格式化为不带小数点的字符串。

于 2013-09-23T19:56:07.800 回答