ブログトップ 記事一覧 ログイン 無料ブログ開設

brainstorm RSSフィード Twitter

2012-02-03

Pythonでタイムゾーンを簡単に扱えるライブラリtimesを試す

Pythonタイムゾーンを簡単に扱えるライブラリとしてtimesというのがあるのを知ったので試してみました

インストール

pip install times

ローカルタイムをUTCに変換する

datetimeオブジェクトUTCに変換するにはタイムゾーン文字列で指定してtimes.to_universalもしくはtimes.from_localを呼び出します。

datetimeオブジェクトが返されます。

import times
import datetime

local_time = datetime.datetime(2012, 2, 3, 16, 0, 0)

# UTCに変換する
universal_time = times.to_universal(local_time, 'Asia/Tokyo')
print universal_time
# => 2012-02-03 07:00:00

# from_localとto_universalは同じ
print times.from_local(local_time, 'Asia/Tokyo')
# => 2012-02-03 07:00:00

タイムゾーンが間違っているとpytz.exceptions.UnknownTimeZoneErrorが返されます

local_time = datetime.datetime(2012, 2, 3, 16, 0, 0)
universal_time = times.to_universal(local_time, 'Asia/xxxx')
# => pytz.exceptions.UnknownTimeZoneError

UTCをローカルタイムに変換する

UTCのdatetimeオブジェクトをローカルタイムに変換するにはtimes.to_localもしくはtimes.from_universalを呼び出します。

datetimeオブジェクトが返されます。

関数名がわかりやすくていいです

# 逆にUTCを日本標準時(JST)に変換する
# datetimeオブジェクトを得る
print times.to_local(universal_time, 'Asia/Tokyo')
# => 2012-02-03 16:00:00+09:00

# to_localとfrom_universalは同じ
print times.from_universal(universal_time, 'Asia/Tokyo')
# => 2012-02-03 16:00:00+09:00

タイムゾーンを指定してフォーマットする

タイムゾーンを指定して、times.formatを呼び出すと文字列に変換できます。フォーマットを指定できます。

# タイムゾーンを指定してフォーマットする
print times.format(universal_time, 'Asia/Tokyo')
# => 2012-02-03 16:00:00+0900

# フォーマットを指定する
print times.format(universal_time, 'Asia/Tokyo', '%Y年%m月%d日 %H時%M分')
# => 2012年02月03日 16時00分

utcを得る

times.nowを呼び出すとutcのdatetimeオブジェクトを取得できます

内部的にはdatetime.datetime.utcnowです

print times.now()
# => 2012-02-03 07:36:35.043260


感想

小さいライブラリですが、使い方がわかりやすくていいですね!

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/yuheiomori0718/20120203/1328271128