2

Python は非常に新しいので、noob の質問を許してください:

次のような日付を表す数値があります。

date = 20121228  

(2012 年 12 月 28 日を表す)

Pythonでその日付を5日増やすにはどうすればよいので、次のような日付を表す新しい(正しい)番号になります

date = 20130102

私はほしくない:

date = 20121233

更新:試して使用するdatetime.strptimeと、次のエラーが発生します:

Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AttributeError: type object 'datetime.datetime' has no attribute 'strptime'
4

3 に答える 3

6

これを試して:

date = 20121228
from datetime import datetime, timedelta
dt = datetime.strptime(str(date), "%Y%m%d").date() + timedelta(days=5)
print datetime.strftime(dt, "%Y%m%d")
于 2013-02-06T21:14:08.650 に答える
1

それをオブジェクトに解析し、datetime.date()5 日を追加してから、数値に再フォーマットします。

from datetime import datetime, timedelta

dt = datetime.strptime(str(date), '%Y%m%d').date()
dt += timedelta(days=5)
date = int(dt.strftime('%Y%m%d'))

デモンストレーション:

>>> from datetime import datetime, timedelta
>>> date = 20121228
>>> dt = datetime.strptime(str(date), '%Y%m%d').date()
>>> dt += timedelta(days=5)
>>> int(dt.strftime('%Y%m%d'))
20130102

Python 2.5 より前のバージョンの Python では、次のtime.strptime()バージョンを使用する必要があります。

import time
from datetime import datetime, timedelta
dt = datetime(*(time.strptime(str(date), '%Y%m%d')[:6]))
dt += timedelta(days=5)
date = int(dt.strftime('%Y%m%d'))
于 2013-02-06T21:14:45.867 に答える
0

最初に日付を文字列に変換する必要があります。次に、オブジェクトを使用しtimedeltaて日をオブジェクトに追加しdatetimeます。

from datetime import datetime, timedelta

d = datetime.strptime(str(20121228), "%Y%m%d")
print (d + timedelta(days=5)).strftime("%Y%m%d")
于 2013-02-06T21:14:32.763 に答える