1

スウェーデンでは、奇妙な日付形式を使用することがあります。たとえば、新年は 31/12 です。この形式を文字列として使用し、1/1 から 31/12 までの任意の日付にすることができ、今年だと仮定すると、Python を使用して標準の日付形式 (2012-01 の形式) にするにはどうすればよいですか? -01 および 2012-12-31) は、MySQL データベースに日付として格納するのに苦労する可能性があります。

4

2 に答える 2

2

単純に 2 つの値を分割し、それらを整数にマップして、datetime.date()インスタンスを更新します。

import datetime
day, month = map(int, yourvalue.split('/'))
adate = datetime.date.today().replace(month=month, day=day)

を使用しdatetime.date.today()て、現在の年を取得します。

デモ:

>>> import datetime
>>> somevalue = '31/12'
>>> day, month = map(int, somevalue.split('/'))
>>> datetime.date.today().replace(month=month, day=day)
datetime.date(2012, 12, 31)
>>> someothervalue = '1/1'
>>> day, month = map(int, someothervalue.split('/'))
>>> datetime.date.today().replace(month=month, day=day)
datetime.date(2012, 1, 1)

datetime.strptime()または、メソッドを使用してこれらの日付を解析することもできますが、後で手動で年を修正する必要があります (年が解析されていない場合は、デフォルトとして 1900 が使用されます)。

adate = datetime.datetime.strptime(yourvalue, '%d/%m').date()
adate = adate.replace(year=datetime.date.today().year)
于 2012-11-08T15:54:22.553 に答える
0

この形式について奇妙なことは何もありません:)

モジュールを使用できdatetimeます:

import datetime
d = datetime.datetime.strptime('31/12', '%d/%m').date().replace(year=2012)
print d

>> datetime.date(2012, 12, 31)
于 2012-11-08T16:12:51.337 に答える