首页 > 解决方案 > 遍历日期字符串列表:strptime 输出 "Datetime.date(2011-7-5)" 而不是 (2011-7-5)

问题描述

我有以下问题:

我有一个日期字符串列表:

dates = ['11-07-05',
         '11-07-01',
         '11-07-03',
         '11-07-04', etc]

我想将它们转换为日期格式,我使用了以下代码:

from datetime import datetime as dt
dateFormat = [dt.strptime(item[1],"%y-%m-%d").date() for item in dates

这应该以以下格式输出一个新列表:

dateFormat = [2011-7-5,
              2011-7-1,
              2011-7-3,
              2011-7-4]

但输出结果是:

dateFormat = [datetime.date(2011-7-5),
              datetime.date(2011-7-1),
              datetime.date(2011-7-3),
              datetime.date(2011-7-4)]

我的问题是:如何在没有“datetime.date”的情况下将日期字符串格式化为日期格式?

标签: pythonpython-2.7listdatetime

解决方案


您想使用 datetime.strptime 将字符串转换为日期时间,然后使用datetime.strftime日期时间转换回字符串

from datetime import datetime as dt

dates = ['11-07-05', '11-07-01', '11-07-03', '11-07-04']

# Iterate through the dates
# Convert string to datetime using strptime 
# and then convert the datetime back to string using strftime
dateFormat = [dt.strptime(item,"%y-%m-%d").date().strftime('%Y-%m-%d') for item in dates]

print(dateFormat)

输出将是

['2011-07-05', '2011-07-01', '2011-07-03', '2011-07-04']

推荐阅读