UTC to local:
EPOCH_DATETIME = datetime.datetime(1970,1,1) SECONDS_PER_DAY = 24*60*60 def utc_to_local_datetime( utc_datetime ): delta = utc_datetime - EPOCH_DATETIME utc_epoch = SECONDS_PER_DAY * delta.days + delta.seconds time_struct = time.localtime( utc_epoch ) dt_args = time_struct[:6] + (delta.microseconds,) return datetime.datetime( *dt_args )
UTC to local:
>>> import datetime, pytz >>> local_tz = pytz.timezone('Asia/Tokyo') >>> datetime.datetime.now().replace(tzinfo=pytz.utc).astimezone(local_tz) datetime.datetime(2011, 3, 4, 16, 2, 3, 311670, tzinfo=<DstTzInfo 'Asia/Tokyo' JST+9:00:00 STD>)
local to UTC:
>>> import datetime, pytz >>> datetime.datetime.now() datetime.datetime(2011, 3, 4, 15, 6, 6, 446583) >>> datetime.datetime.now(pytz.utc) datetime.datetime(2011, 3, 4, 7, 6, 22, 198472, tzinfo=<UTC>)
References
https://k4ml.wordpress.com/2011/03/04/convert-utc-time-to-local/
https://stackoverflow.com/questions/4563272/convert-a-python-utc-datetime-to-a-local-datetime-using-only-python-standard-lib