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
リンク元
- 3 http://t.co/tG7Pts2T
- 2 http://ezsch.ezweb.ne.jp/search/?sr=0101&query=バッファ ファイル
- 2 http://t.co/JdIYzhsG
- 2 http://www.google.co.jp/url?sa=t&rct=j&q=backbone.js router&source=web&cd=3&ved=0CD0QFjAC&url=http://d.hatena.ne.jp/yuheiomori0718/20111201/1322743832&ei=ys8rT4jWGIWTiAe9u-nDDg&usg=AFQjCNG4qNIrfYoF8S0K4VBx94SZiZhjlA&sig2=XmEkmisxeQSGVH05Zapv
- 2 http://www.google.co.jp/url?sa=t&rct=j&q=emacs&source=web&cd=1&ved=0CDQQFjAA&url=http://d.hatena.ne.jp/yuheiomori0718/20120202/1328190025&ctbs=qdr:d&ei=9NkrT6rDBeXtmAWmoLT-Dw&usg=AFQjCNEuuHDe61ybk_kS8DzfKqfKCqTerw&sig2=3QlOyFUpMdHzJhQ4VyedIA
- 2 http://www.google.co.jp/url?sa=t&rct=j&q=python ハッシュ値 取得&source=web&cd=6&ved=0CE8QFjAF&url=http://d.hatena.ne.jp/yuheiomori0718/20111213/1323783159&ei=GRUtT6epKPHumAXLwIjpDw&usg
- 1 http://d.hatena.ne.jp/keyword/.emacs
- 1 http://d.hatena.ne.jp/rubikitch/20110226/savekill
- 1 http://practical-scheme.net/wiliki/rssmix.cgi
- 1 http://www.google.co.jp/reader/igoogle-module?up_displayStreamId=user/07207573480185828061/label/blog&up_itemCount=7&up_ranking=d&up_readItemsVisible=0&up_linkTarget=new&lang=ja&country=jp&.lang=ja&.country=jp&synd=ig&mid=106&ifpctok=-1333606063239788881&