Pythonのpytzモジュールを使ってタイムゾーンを変更する方法

スポンサーリンク

プロダクトエンジニアやインフラエンジニアは、世界中にあるインフラを担当することが求められることもあります。

彼らは、米国、アジア、ヨーロッパ、英国などにあるマシンと共同作業をしなければなりません。

そのため、Pythonにとって時差はより大きな意味を持ちます。

今日のプログラミング言語の絶え間ない進歩に伴い、ほぼすべてのプログラミング言語においていくつかのモジュールが整備されています。

Pythonには pytz というタイムゾーンのパッケージがあり、クロスプラットフォームでリアルタイムにタイムゾーンの計算ができるようになっています。

スポンサーリンク

pytz モジュールのインストール

はじめに、pytzモジュールのタイムゾーンライブラリをインポートします。

このモジュールのインストールには pip コマンドを使用します。

pip install pytz

必要なモジュールのインポート

さらに、DateTimeモジュールからDateTimeをインポートする必要があります。

一貫性を保つために、日付と時刻の出力に必要なフォーマットを指定することができます

1
2
from pytz import timezone
from datetime import datetime

現在の日付と時刻を取得する

このプログラムでは、書式をYY-MM-DD HH:MM:SSと指定することにします。

コード実行時にDateTimeライブラリのnow()メソッドを呼び出して、指定したフォーマットで現在時刻を取得することにします。

一方、出力されるタイムゾーンの形式は、そのDateTimeオブジェクトの形式となります。

そこで、読みやすくするために、strftime()メソッドを呼び出して文字列の時間形式に変換しています。

1
2
3
4
5
6
time_format = '%Y-%m%d %H:%M:%S %Z%z'
default_now = datetime.now()
formatted_now = datetime.now().strftime(time_format)
 
print("Date Time in defaut format: ", default_now, '
'
)
print("Date Time in string format: ", formatted_now)
Date Time in defaut format2021-11-22 09:26:40.054185
 
Date Time in string format2021-1122 09:26:40

現在の日付と時刻を複数のタイムゾーンに変換する

ここで、タイムゾーンのリストを作成し、それをループして現在時刻をそのタイムゾーンに変換してみましょう。

ここでは、アメリカ、ヨーロッパ、アジア、そして標準時(UTC)のタイムゾーンを取り上げます。

1
2
3
4
5
timezones = ['US/Central', 'Europe/London',
             'Asia/Kolkata', 'Australia/Melbourne', 'UTC']
for tz in timezones:
  dateTime = datetime.now(timezone(tz)).strftime(time_format)
  print(f"Date Time in {tz} is {dateTime}")
Date Time in US/Central is 2021-1122 03:27:58 CST-0600
Date Time in Europe/London is 2021-1122 09:27:58 GMT+0000
Date Time in Asia/Kolkata is 2021-1122 14:57:58 IST+0530
Date Time in Australia/Melbourne is 2021-1122 20:27:58 AEDT+1100
Date Time in UTC is 2021-1122 09:27:58 UTC+0000

続いて、DateTimeライブラリのnow()メソッドのパラメータとして作成したリストにあるすべてのタイムゾーンをループして、すべてのタイムゾーンと各タイムゾーンの現在時刻を取得します。

また、読みやすくするために、文字列形式に変換しておきます。

まとめ

Pythonでタイムゾーンを変更する方法を学びました。

このチュートリアルは気に入りましたか?いずれにせよ、以下のチュートリアルを見てみることをお勧めします。

  1. Python datetimeモジュール – 究極のガイド
  2. PythonのTimeDeltaをどう使うか?
  3. Pythonで特定の時刻を待つには?
  4. Python strptime()を使って文字列を日付時刻に変換する

お時間を割いていただきありがとうございました。

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