如何在python中更改时间格式?

时间:2011-04-01 13:18:10

标签: python string time

我如何获得以下列表

 [datetime.date(2011, 4, 1), datetime.date(2011, 4, 8), datetime.date(2011, 4, 16), datetime.date(2011, 5, 21)]

as

['2011-04','2011-05']

它不仅可以转换为字符串,还可以删除重复

3 个答案:

答案 0 :(得分:6)

使用datetime.date.strftime将日期转换为字符串。

dates = [date.strftime('%Y-%m') for date in dates]

您可以通过将列表转换为集合然后返回列表来删除重复项。

dates = list(set(dates))

然后将两种方法结合起来,一步完成。

dates = list(set([date.strftime('%Y-%m') for date in dates]))

答案 1 :(得分:1)

>>> dates = [datetime.date(2011, 4, 1), datetime.date(2011, 4, 8), datetime.date(2011, 4, 16), datetime.date(2011, 5, 21)]
>>> set([date.strftime('%Y-%m') for date in dates])
set(['2011-05', '2011-04'])

set将列表转换为set对象,删除重复项。 [date.strftime('%Y-%m') for date in dates]是一个列表推导,它使用具有年月模式的strftime函数将每个日期转换为字符串。

答案 2 :(得分:1)

In [43]: import datetime

In [44]: dates=[datetime.date(2011, 4, 1), datetime.date(2011, 4, 8), datetime.date(2011, 4, 16), datetime.date(2011, 5, 21)]

In [45]: set([date.strftime('%Y-%m') for date in dates])
Out[45]: set(['2011-04', '2011-05'])