Pythonで日時のデータを扱う:datetime

Pythonで日付や時刻を扱う場合は datetime モジュールを使用します。今回は datetime モジュールを使って日時の取得、生成、演算、比較、表示を行う方法などについて説明します。

現在の日時を取得する:today

日付を扱う場合は datetime モジュールの date クラスを使用します。

dateクラスの today() を使用すれば現在の時刻を取得できます。

以下のように日付の各要素を取得することができます。

現在の日付と時刻を取得する

日付と時刻を扱う場合は datetime モジュールの datetime クラスを使用します。

datetime クラスの now() を使用すれば現在の日付を取得できます。

以下のようにすると日時の各要素を取得することができます。

指定した日時のオブジェクトを生成する

指定した日時のオブジェクトを生成する場合は、 datetime() を用いてオブジェクトを生成します。

以下のプログラムは、2016年2月22日22時22分22秒という日時を生成する例です。

指定した時刻のオブジェクトを生成する

指定した時刻のオブジェクトを生成する場合は、time() を用いてオブジェクトを生成します。

以下のプログラムは、12時34分56秒という日時を生成する例です。

日時の演算と比較:timedelta

日時を比較する場合は、datetime オブジェクト同士を差を求めることで比較することができます。datetime のオブジェクト同士を演算子した結果は timedelta クラスのオブジェクトして返されます。

timedelta オブジェクトは日、秒、マイクロ秒のデータが内部的に保存されており、days, seconds, microseconds メソッドを使用することにより情報を取得することができます。

日時の差分を生成する

timedelta を使用すれば、n 日後や n 秒前といった日時を生成することでもできます。temedelta のオブジェクトと加減算を行っても date や datetime オブジェクトの型はそのままの型のままです。

以下は現在日時から10日後を生成するサンプルコードです。

timedelta は weeks, days, hours, minutes, seconds などをキーワード指定で引数に渡すことによって、指定した差分を生成することができます。これらの引数は複数指定することもできます。

日時を比較する

日時のオブジェクトを比較するときは、比較演算子を使用することができます。

曜日を取得する

曜日を取得する場合は、weekday() メソッドを使用します。weekday() は月曜日から日曜日までの曜日を 0 から 6 の整数で返します。

上のプログラムでは整数が出力されますが、整数と対応する曜日から、2016年6月27日は月曜日、2016年6月28日は火曜日であることが確認できます。

日時の文字列フォーマット:strftime

strftime メソッドを使用して日時を整形して表示することができます。

strftime はフォーマット後の文字列を返します。

以下は文字列フォーマットを使用したサンプルコードです。

文字列フォーマットに使用できるオプションはこちらを参考にしてください。


Welcome to UX MILK

UX MILKはより良いサービスやプロダクトを作りたい人のためのメディアです。

このサイトについて

UX MILKのディレクター募集