dateutil を使ったタイムゾーン管理

datastore には UTC で格納して表示するときに localtime (tznam で指定した時間) で表示したい場合を簡単に書いてみました。
さらに localtime から UTC に変換するものも書いてみました。

from datetime import *

from dateutil import zoneinfo, tz

def localtime(dt, tzname='Asia/Tokyo'):
  """
  >>> from datetime import *
  >>> now = datetime.now(tz.tzutc())
  >>> localtime(now)
  """
  return dt.replace(tzinfo=tz.tzutc()).astimezone(zoneinfo.gettz(tzname))

def utctime(dt, tzname='Asia/Tokyo'):
  """
  >>> from datetime import *
  >>> now = datetime.now(zoneinfo.gettz('Asia/Tokyo'))
  >>> utctime(now)
  """
  return dt.replace(tzinfo=zoneinfo.gettz(tzname)).astimezone(tzutc())