我有一个python识别为str
的日期列表。我需要能够将其作为日期工作,以便能够添加和减去天数。日期的格式为" 2017年6月29日和#34;
如何设置日期列表而不是字符串列表?
答案 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日期。