やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Pythonでタイムゾーンを扱う

pytzライブラリをインストールする。

参考

こちらこちらを参考にさせていただいた。感謝。

pytz

timezoneライブラリ。

インストール

c:/python34/Scripts/pip install pytz
Collecting pytz
  Downloading pytz-2016.10-py2.py3-none-any.whl (483kB)
    100% |################################| 491kB 273kB/s
Installing collected packages: pytz
Successfully installed pytz-2016.10

テストコード

testTimezone.py

#!python3
#encoding:utf-8
import pytz
from datetime import datetime

local_time = datetime.now()
print(local_time)

utc_time = datetime.now(pytz.utc)
print(utc_time)
utc_time_str = "{0:%Y-%m-%dT%H:%M:%SZ}".format(utc_time)
print(utc_time_str)
print(datetime.strptime(utc_time_str, '%Y-%m-%dT%H:%M:%SZ'))
print(datetime.strptime(utc_time_str, '%Y-%m-%dT%H:%M:%SZ').replace(tzinfo=pytz.utc))
print(datetime.strptime(utc_time_str, '%Y-%m-%dT%H:%M:%SZ').replace(tzinfo=pytz.timezone('Asia/Tokyo')))

結果

2017-01-15 11:58:04.781250
2017-01-15 02:58:04.781250+00:00
2017-01-15T02:58:04Z
2017-01-15 02:58:04
2017-01-15 02:58:04+00:00
2017-01-15 02:58:04+09:00
行目 説明
1 ローカル時刻(UTC+9時間)
2 UTC時刻
3 UTC時刻をyyyy-MM-ddTHH:mm:ssZ形式の文字列へフォーマット
4 yyyy-MM-ddTHH:mm:ssZ形式の文字列からdatetime型へフォーマット
5 4にTimeZone(UTC)情報を付与した
6 4にTimeZone(Asia/Tokyo)情報を付与した

時刻

参考

https://www.nict.go.jp/JST/JST5.html

略名 英名 和名 時差 原理
UTC Universal Time, Coordinated 協定世界時 - セシウム原子時計
GMT Greenwich Mean Time グリニッジ標準時 UTC+00:00 グリニッジ天文台観測
JST Japan Standard Time 日本標準時 UTC+09:00 セシウム原子時計

所感

時間については深入りすると難しそう。

とりあえず、UTCで扱い、pythonではpytzを使えばよさそう。