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