datetimeモジュールによる時刻の扱い

どのプログラミング言語/スクリプトでも、時刻と文字列の変換は頻出の処理ですね。
ここではPythonの標準モジュールdatetimeを使って基本的な日付・時刻の処理をまとめておきます。

datetimeオブジェクト

まずは基本から。現在時刻を取得してみましょう。
datetime.datetimeは時刻を含むオブジェクト。単に日付までならdatetime.dateオブジェクトがあります。

タイムゾーンを指定したい時はやや面倒。
ちょっと調べてみましたが標準モジュールでは用意されておらず、別途外部のモジュール(pytz)を使う例が多数派のようです。

timezone()コンストラクタの引数は柔軟に指定できるようで、'Asia/Tokyo''Japan'などが使えるもよう。

datetimeオブジェクト→文字列

単純に文字列が欲しい場合、ISOフォーマットやstr.format()を使うのが楽。

ただし、ファイル名に使う場合などは記号(スラッシュやコロン)があると困るので、フォーマットを指定する方法が適切です。

strftimeのfはformatから来ているのでしょうか。

文字列→datetimeオブジェクト

datetimeオブジェクトは文字列をパースするメソッドstrptimeを持っています。
第一引数に文字列、第二引数にフォーマットを指定します。

strptimeのpはparseから来ているのでしょうか。

datetimeオブジェクトを使った加減算

datetimeオブジェクトは加減算が可能で、時刻の差を表すdatetime.timedeltaオブジェクトを使います。次の例は、時間差がある特定の値以内であることを判定します。