Python 将浮点值列表转换为日期
我有一个日期列表,写为Python 将浮点值列表转换为日期,python,date,datetime,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(
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]))
所以我需要把浮动日期的完整列表基本上改为实际日期。我错过了什么
编辑:添加示例列表只需使用:
使用列表理解,并使用
datetime.strtime()
解析值(转换为字符串):
演示:
我使用
format()
将浮点数格式化为字符串,不带小数点,以便于分析。你的意思是你知道如何转换一个值,而不是整个列表?是的,我可以转换单个日期,但转换整个列表时遇到困难,因为我的列表格式为[20130710.0,20130802.0,20130806.0]
ect。。。我得到一个TypeError:int()参数必须是字符串或数字,而不是“list”
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)]
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)]