web-dev-qa-db-ja.com

整数を日付オブジェクトPythonに変換する方法は?

私はpythonでモジュールを作成しています。このモジュールでは、2012年2月13日を意味する20120213のような整数形式の日付を受け取ります。次に、この整数形式の日付をpython日付オブジェクト。

また、同じ形式の日付値を受け取るために、そのような整数形式の日付の日数を減算/加算できる手段がある場合はどうなりますか? 20120213から30日を引いて20120114として回答を受け取るようなものですか?

20
Uday0119

変換には次の簡単なアプローチをお勧めします。

from datetime import datetime, timedelta
s = "20120213"
# you could also import date instead of datetime and use that.
date = datetime(year=int(s[0:4]), month=int(s[4:6]), day=int(s[6:8]))

任意の日数を加算/減算するには(秒はあまりにも効果的です)、次のことができます。

date += timedelta(days=10)
date -= timedelta(days=5)

そして、以下を使用して変換します。

s = date.strftime("%Y%m%d")

整数を安全に文字列に変換するには、次を使用します。

s = "{0:-08d}".format(i)

これにより、年が1000より小さい場合でも、文字列は8文字の長さで、ゼロで左詰めされます(負の年はおかしくなります)。

詳細なリファレンス: datetime objectstimedelta objects

20
Jonas Schäfer