Python – 日付と時間を扱う datetime オブジェクト
2009年6月11日 1:15 AM by Abalone




Python で日付と時間を扱う場面があると思う。実際、私が今作成しているプログラムでもそういった場面がある。
このために日付と時間の両方を扱えるdatetimeモジュールを使ってみたい。

まずは、datetimeクラスを生成してみる。
datetimeクラスは、datetimeモジュールで定義されているので、オブジェクトを生成する際には以下のようになる。

>>> import datetime
>>> dt = datetime.datetime(2009,6,10,13,24,25)
>>> print dt
2009-06-10 13:24:25


この場合、dt = datetime(2009,6,10,13,24,25)とするとエラーになるので注意。そのように記述したい場合には、datetimeクラスをdatetimeモジュールからimportをする必要がある。

>>> from datetime import datetime
>>> dt = datetime(2009,6,10,13,24,25)
>>> print dt
2009-06-10 13:24:25


datetimeクラスのコンストラクタには、さらにマイクロ秒,タイムゾーンを指定することが可能。指定必須なのは、年月日。下の例は、年月日だけ指定した場合の例、その下はマイクロ秒まで指定した場合の例である。タイムゾーンの指定はdatetime.tzinfoクラスのサブクラスを作る必要があるので、少々手間がかかるので、ここではやらない。

>>> import datetime
>>> dt = datetime.datetime(2009,06,10)
>>> print dt
2009-06-10 00:00:00
>>> dt2 = datetime.datetime(2009,06,10,13,24,25,5000)
>>> print dt2
2009-06-10 13:24:25.005000


datetimeオブジェクト同士で引き算、比較演算も可能である。

>>> print dt2 - dt
13:24:25.005000
>>> if dt2 > dt:
...     print "dt2 is bigger."
... else:
...     print "dt is bigger."
...
dt2 is bigger.


datetimeクラスには他にも現在時刻を格納したdatetimeオブジェクトを返却するメソッド、datetime.now()なども用意されているので、結構便利に使える。

さらにタイムゾーンの指定もやってみるが、それはまた次回。





トラックバックURL


この記事に対するコメント/トラックバックはまだありません


コメントをどうぞ

お名前(必須)
Eメールアドレス(公開されません)(必須)