【Python】tzlocalによるデフォルト・タイムゾーンの取得

【Python】tzlocalによるデフォルト・タイムゾーンの取得 プログラミング

「利用中の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.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年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の動作確認を説明しました。

タイトルとURLをコピーしました