プロダクトエンジニアやインフラエンジニアは、世界中にあるインフラを担当することが求められることもあります。
彼らは、米国、アジア、ヨーロッパ、英国などにあるマシンと共同作業をしなければなりません。
そのため、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 format : 2021 - 11 - 22 09 : 26 : 40.054185
Date Time in string format : 2021 - 1122 09 : 26 : 40
|
この記事もチェック:PythonのGeopyライブラリを使って住所のジオコードを取得する方法
現在の日付と時刻を複数のタイムゾーンに変換する
ここで、タイムゾーンのリストを作成し、それをループして現在時刻をそのタイムゾーンに変換してみましょう。
ここでは、アメリカ、ヨーロッパ、アジア、そして標準時(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でdatatimeモジュールを使って現在の日付と時刻を取得する方法
まとめ
Pythonでタイムゾーンを変更する方法を学びました。
このチュートリアルは気に入りましたか?いずれにせよ、以下のチュートリアルを見てみることをお勧めします。
- Python datetimeモジュール – 究極のガイド
- PythonのTimeDeltaをどう使うか?
- Pythonで特定の時刻を待つには?
- Python strptime()を使って文字列を日付時刻に変換する
お時間を割いていただきありがとうございました。