Python将日期字符串转换为python日期并减去

Joh*_*wyn 1 python

我有一种情况,我需要从字符串的date_entry位置找到前一个日期date_entry,我设法做到这一点:

>>> from datetime import timedelta, datetime
>>> from time import strptime, mktime
>>> date_str = '20130723'
>>> date_ = strptime(date_str, '%Y%m%d')
>>> date_
time.struct_time(tm_year=2013, tm_mon=7, tm_mday=23, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=204,tm_isdst=-1)
>>> datetime.fromtimestamp(mktime(date_))-timedelta(days=1)
datetime.datetime(2013, 7, 22, 0, 0)
>>>
Run Code Online (Sandbox Code Playgroud)

但是,为了这个,我必须导入模块timedelta,datetime,strptimemktime.我认为解决这个简单问题真的太过分了.

有没有更优雅的方法来解决这个问题(使用Python 2.7)?

fal*_*tru 5

只需使用datetime.datetime.strptime类方法:

>>> import datetime
>>> date_str = '20130723'
>>> datetime.datetime.strptime(date_str, '%Y%m%d') - datetime.timedelta(days=1)
datetime.datetime(2013, 7, 22, 0, 0)
Run Code Online (Sandbox Code Playgroud)

  • `datetime.datetime.strptime` 返回 datetime 对象,而 `time.strptime` 返回 `time.struct_time` 对象。 (2认同)