2013-07-25 32 views
1

我有一個情況我需要找到從date_entry其中date_entry是字符串的上一個日期,我成功地做到這一點:Python的日期字符串轉換爲Python的日期和減去

>>> 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) 
>>> 

但是,對於這個我必須導入模塊timedelta,datetime,strptimemktime。我認爲這對於解決這個簡單問題來說確實是一種矯枉過正。

有沒有更好的方法來解決這個問題(使用Python 2.7)?

回答

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) 
+0

感謝。我不知道我們可以從日期時間導入strptime。 –

+0

@JohnPrawyn,import strptime?不,「datetime.datetime.strptime」與「time.strptime」不同。 – falsetru

+1

'datetime.datetime.strptime'返回datetime對象,而'time.strptime'返回'time.struct_time'對象。 – falsetru

相關問題