timeモジュール

日付、時刻を処理するtimeモジュールを利用するには、抑えておくべきものが二つある。

  • 1970年1月1日0時0分0秒からの経過秒数を表すエポック秒
  • timeモジュールでの時刻の表現といえる time.struct_timeシーケンス

timeモジュールの関数ではこの二つをよく使う。

gmtime

エポック秒からUTCにおけるtime.struct_timeシーケンスを得る。

>>> time.gmtime(1000000000)
time.struct_time(tm_year=2001, tm_mon=9, tm_mday=9, tm_hour=1, tm_min=46, tm_sec
=40, tm_wday=6, tm_yday=252, tm_isdst=0)

localtime

エポック秒からローカルな時刻のtime.struct_timeシーケンスを得る。

>>> time.localtime(1000000000)
time.struct_time(tm_year=2001, tm_mon=9, tm_mday=9, tm_hour=10, tm_min=46, tm_se
c=40, tm_wday=6, tm_yday=252, tm_isdst=0)

ctime

エポック秒から日付・時刻を表す文字列を得る。

>>> time.ctime(1000000000)
'Sun Sep 09 10:46:40 2001'

ちなみに、gmtime、localtime、ctimeともエポック秒を省略すると現在の時刻が使われる。

asctime

ctimeと違って、time.struct_timeシーケンスから文字列を得る。

>>> time.asctime(time.localtime())
'Sat Feb 16 20:30:02 2013'

time

UTCにおける現在のエポック秒を得る。返り値は浮動小数点数。

>>> time.time()
1361015278.904

mktime

localtimeの逆を行う関数。ローカル時刻のtime.struct_timeシーケンスからエポック秒を得る。

>>> t = time.localtime()
>>> time.mktime(t)
1361014493.0

strftime

time.struct_timeシーケンスから、指定したフォーマットの文字列を得る。

>>> t = time.localtime()
>>> time.strftime("%Y-%m-%d %H:%M:%S", t)
'2013-02-16 20:37:57'

strptime

strftimeの逆。フォーマットされた日付・時刻からtime.struct_timeシーケンスを得る。

>>> s = "2013-02-16 20:40:00"
>>> t = time.strptime(s, "%Y-%m-%d %H:%M:%S")
>>> t
time.struct_time(tm_year=2013, tm_mon=2, tm_mday=16, tm_hour=20, tm_min=40, tm_s
ec=0, tm_wday=5, tm_yday=47, tm_isdst=-1)

主な関数はこんなところ。マニュアルにはほかにもいくつもの関数が書かれている。

cf. http://docs.python.jp/2.7/library/time.html

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください