Pythonで日付データを扱う処理を書くことになりました。
「Google Apps Script」や「JavaScript」なら、Day.jsライブラリが便利です。
じゃあ、Pythonなら?
便利なモジュールが標準ライブラリに用意されているので、その使い方をまとめました。
日付を扱うライブラリは?
標準ライブラリ「datetime」です。
まずはインポートしましょう。
import datetime
datetimeの使い方は?
ライブラリ名の後にデータ型を指定し、必要に応じて関数を書きます。
例えば、今日の日付を取得するコードは次の通り。
import datetime
print(datetime.date.today())
# ⇒ 2021-11-01
print(datetime.datetime.today())
# ⇒ 2021-11-01 23:18:31.382556
同じtoday()を使っても、データ型によって出力が変わります。
- .date:日付の年月日のみ
- .datetime:日付(年月日)に加え、時刻(時分秒ミリ秒)も含む
- .time:時刻のみ
データ型によって、使えるもの、使えないものがあります。
例に挙げたtoday()は、「.date」や「.datetime」には使えるものの「.time」には使えません。
似たような関数に「now()」がありますが、これは「.datetime」だけで使えます。
このように、データ型によって関数を使い分けることになりますので、基本を押さえておきましょう。
具体的なコードの書き方は?
今日の日付を取得する
datetime.date.today()
現在の時刻を取得する(日付を含む)
datetime.datetime.today()
datetime.datetime.now()でも良い
日付を取得する
年を取得
datetime.date.today().year
月を取得
datetime.date.today().month
日を取得
datetime.date.today().day
曜日を取得(戻り値は0 ~ 6、0は月曜日)
datetime.date.today().weekday()
年月日を取得
datetime.datetime.today().date()
時刻を取得する
時を取得(戻り値は0 ~ 23)
datetime.date.today().hour
分を取得
datetime.date.today().minute
秒を取得
datetime.date.today().second
時分秒ミリ秒を取得
datetime.datetime.today().time()
日付情報を指定する
数字で指定する
datetime.date(年,月,日)
※引数の省略は不可。
文字列で指定する
datetime.date.fromisoformat('2021-11-1')
時刻情報を指定する(日付を含む)
数字で指定する
datetime.datetime(年,月,日,時,分,秒,ミリ秒,タイムゾーン)
※年月日の引数は省略不可。時刻の指定を省略すると「0」になる。
文字列で指定する
datetime.datetime.fromisoformat('2021-11-01 23:00:00')
※月日は2桁で指定しないとエラーになる。日付と時刻の間はスペースや「T」に限らず、1文字入っていればなんでも良い。
時刻情報のみを指定する(日付を含まない)
数字で指定する
datetime.time(時,分,秒,ミリ秒,タイムゾーン)
※引数を省略すると「0」になる。
文字列で指定する
datetime.time.fromisoformat('23:00:00')
※時分秒は2桁で指定しないとエラーになる。
日付の加減
「.timedelta()」を使って差分を作成、それを足したり引いたりする。
1日後
datetime.date.today() + datetime.timedelta(days=1)
2週間前
datetime.date.today() - datetime.timedelta(weeks=2)
3時間後
datetime.datetime.today() + datetime.timedelta(hours=3)
4分前
datetime.datetime.today() - datetime.timedelta(minutes=4)
5秒後
datetime.datetime.today() + datetime.timedelta(seconds=5)
「.timedelta()」の引数は複数可。1時間半を作るには「datetime.timedelta(hours=1,minutes=30)」とする。
その他のメソッドや詳しい解説は、公式ドキュメントをご覧ください。
まとめ
Pythonで日付を扱うには、標準ライブラリ「datetime」が便利です。 標準ライブラリ「datetime」で日付の足し算、引き算ができるけれど、最長で週単位でした。 じゃあ、月単位や年単位で計算したいときはどうしたらよいのか? その方法をまとめました。 Py ... 続きを見る
年単位や月単位での加減算はできませんが、日付に関する処理の大部分がこれでカバーできるのではないでしょうか。
とてもいい勉強になりました。
Pythonで1年後や1カ月後を計算するには?