「Pythonでタイムゾーンを扱いたい」
「タイムゾーンについてイマイチよくわからない・・・」
このような場合には、pytzがオススメです。
この記事では、pytzのインストールについて解説しています。
本記事の内容
- pytzとは?
- pytzのシステム要件
- pytzのインストール
- pytzの動作確認
それでは、上記に沿って解説していきます。
pytzとは?
pytzとは、Pythonでタイムゾーンを扱うことができるライブラリです。
Pythonでタイムゾーンと言えば、pytzが代表的ではないでしょうか。
実際、pytzはかなりのライブラリで利用されています。
他のパッケージから依存されているということです。
ただし、Pythonで日時を扱うということであれば話は変わります。
単純に日時を扱いたいのであれば、Arrowをオススメします。
以上、pytzについて説明しました。
次は、pytzのシステム要件を説明します。
pytzのシステム要件
現時点(2022年6月末)でのpytzの最新バージョンは、2022.1となります。
この最新バージョンは、2022年3月20日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
サポート対象となるPythonのバージョンは、以下となっています。
Pythonオールスターズですね。
ここまでの幅広い対応は、見たことがありません。
ただ、我々は以下のPython公式開発サイクルに従ったバージョンを利用しましょう。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
2022年6月末現在なら、Python 3.7以降がサポート対象となります。
したがって、システム要件としてはPython 3.7以降を推奨しておきます。
まとめると、pytzのシステム要件はあってないようなモノです。
でも、セキュリティを意識するなら、Python 3.7以降の利用を前提にしましょう。
以上、pytzのシステム要件を説明しました。
次は、pytzのインストールを説明します。
pytzのインストール
検証は、次のバージョンのPythonで行います。
$ python -V Python 3.10.2
まずは、現状のインストール済みパッケージを確認しておきます。
$ pip list Package Version ---------- ------- pip 22.1.2 setuptools 62.6.0 wheel 0.36.2
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、pytzのインストールです。
pytzのインストールは、以下のコマンドとなります。
pip install pytz
pytzのインストールは、本当に一瞬です。
終了したら、どんなパッケージがインストールされたのかを確認します。
$ pip list Package Version ---------- ------- pip 22.1.2 pytz 2022.1 setuptools 62.6.0 wheel 0.36.2
pytzには、依存するパッケージが存在していません。
そのため、既存環境への導入が容易に可能です。
以上、pytzのインストールを説明しました。
次は、pytzの動作確認を説明します。
pytzの動作確認
pytzの動作確認を行います。
まずは、次のコードを実行してみてください。
from datetime import datetime dt = datetime.now() print(dt)
実行すると、実行した時点での日本における現在時刻が表示されます。
2022-06-25 09:53:38.794557
では、このコードを海外で実行したらどうなるでしょうか?
おそらく、その地域のタイムゾーンに沿った現在時刻が表示されるはずです。
この仕組みとしては、システムのタイムゾーンを利用しています。
日本であれば、日本のタイムゾーンでOSをインストールしているはずです。
だから、何の工夫もなく現地毎に正しい現在時刻が表示されます。
しかし、海外現地の現在時刻を知りたいケースもあります。
例えば、ロサンゼルスの現在時刻を知りたいとしましょう。
そのような場合に、pytzが活躍します。
先ほどのコードを少し改変しています。
from datetime import datetime from pytz import timezone dt = datetime.now(timezone('US/Pacific')) print(dt)
上記を実行した結果は、次のような結果となります。
2022-06-24 18:20:11.868246-07:00
実行時の日本における現在時刻は、2022年6月25日10:20頃です。
結果より、日本とロサンゼルスでは16時間の時差があることが確認できます。
実際、時差を確認するサイトで同時刻に表示される内容とも一致しています。
このように、タイムゾーンを指定したい場合にpytzが活躍します。
以上、pytzの動作確認について説明しました。