将字符串列表转换为日期列表Python 3.6

时间:2017-07-02 02:39:27

标签: python string python-3.x datetime python-datetime

我有一个python识别为str的日期列表。我需要能够将其作为日期工作,以便能够添加和减去天数。日期的格式为" 2017年6月29日和#34;

如何设置日期列表而不是字符串列表?

2 个答案:

答案 0 :(得分:1)

datetime.datetime.strptime将字符串转换为datetime对象:

>>> datetime.datetime.strptime('29-Jun-2017', '%d-%b-%Y')
datetime.datetime(2017, 6, 29, 0, 0)

然后,datetime.datetime.date()将返回date对象:

>>> datetime.datetime.strptime('29-Jun-2017', '%d-%b-%Y').date()
datetime.date(2017, 6, 29)

有关其他格式代码,请参阅strftime() and strptime() Behavior

答案 1 :(得分:0)

箭头模块使用日期进行此类计算特别容易。

这里我创建了一个日期字符串的简短列表,我将其转换为箭头日期。显示这些日期后,我使用replace方法从每个日期减去两天,创建一个新列表。然后我将此结果格式化以便显示。

>>> import arrow
>>> data = [ '01-Jan-2017', '31-Dec-2017' ]
>>> data_as_dates = [ arrow.get(_, 'DD-MMM-YYYY') for _ in data]
>>> data_as_dates 
[<Arrow [2017-01-01T00:00:00+00:00]>, <Arrow [2017-12-31T00:00:00+00:00]>]
>>> two_days_earlier = [ _.replace(days=-2) for _ in data_as_dates ]
>>> [_.format('YYYY MMMM DD') for _ in two_days_earlier]
['2016 December 30', '2017 December 29']

箭头对象中包含的日期可用作适合与日期时间一起使用的常规Python日期。