「利用中のOSにおけるタイムゾーンを調べたい」
「Pythonからローカルのタイムゾーンを判別したい」
このような場合には、tzlocalがオススメです。
この記事では、tzlocalを使ったタイムゾーンの取得方法を解説しています。
本記事の内容
- tzlocalとは?
- tzlocalのシステム要件
- tzlocalのインストール
- tzlocalの動作確認
それでは、上記に沿って解説していきます。
tzlocalとは?
tzlocalとは、Pythonでタイムゾーンを取得するためのライブラリです。
タイムゾーン自体が、普段はそれほど意識することはないかもしれません。
OSのインストール時に選択するぐらいですからね。
Windowsであれば、次の画面で確認できます。
上記画面(日付と時刻)は、コントロールパネルから次のように遷移できます。
Ubuntuの場合は、次のコマンドで確認できます。
timedatectl status
実行した結果は、以下。
$ timedatectl status Local time: 土 2022-06-25 18:31:40 JST Universal time: 土 2022-06-25 09:31:40 UTC RTC time: 土 2022-06-25 09:31:39 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: yes NTP service: active RTC in local TZ: no
もしくは、直接設定ファイルを参照します。
$ cat /etc/timezone Asia/Tokyo
WindowsとLinux(Ubuntu)で、タイムゾーンを確認してきました。
このタイムゾーンをPythonから取得する際に、tzlocalを利用します。
以上、tzlocalについて説明しました。
次は、tzlocalのシステム要件について説明します。
tzlocalのシステム要件
現時点(2022年6月末)でのtzlocalの最新バージョンは、4.2となります。
この最新バージョンは、2022年4月2日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
サポート対象となるPythonのバージョンは、以下となっています。
- Python 3.6
- Python 3.7
- Python 3.8
- Python 3.9
Python 3.10がありませんが、問題なく動きます。
単純に記載していないか、テストしていないだけでしょう。
一応、tzlocalは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月 |
この記事では、Python 3.7以降を推奨しておきます。
以上、tzlocalのシステム要件を説明しました。
次は、tzlocalのインストールを説明します。
tzlocalのインストール
検証は、次のバージョンの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
では、tzlocalのインストールです。
tzlocalのインストールは、以下のコマンドとなります。
pip install tzlocal
tzlocalのインストールは、すぐに終わります。
終了したら、どんなパッケージがインストールされたのかを確認します。
$ pip list Package Version --------------------- ----------- pip 22.1.2 pytz-deprecation-shim 0.1.0.post0 setuptools 62.6.0 tzdata 2022.1 tzlocal 4.2 wheel 0.36.2
依存しているパッケージが、2つあるようです。
そうは言っても、tzlocalの導入は既存環境に容易にできるでしょう。
依存関係でゴチャゴチャしていないということです。
以上、tzlocalのインストールを説明しました。
次は、tzlocalの動作確認を説明します。
tzlocalの動作確認
ここでは、tzlocalのメイン機能とも言えるタイムゾーンの取得を行います。
そのためのコードは、以下。
from tzlocal import get_localzone tz = get_localzone() print(tz)
上記を実行した結果は、以下。
(Windows、Ubuntuともに同じ結果)
Asia/Tokyo
これが、Python内でもデフォルトで適用されるタイムゾーンとなります。
そして、日本国内にあるマシンであれば上記になるはずです。
以上、tzlocalの動作確認を説明しました。