Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでローカルタイムゾーン(UTCオフセット)を取得する方法

コンピュータのUTCオフセットとは、そのコンピュータに設定されているタイムゾーンのことです。Pythonでは、標準ライブラリのtimeモジュールを使うことで、このタイムゾーン情報を簡単に取得できます。time.timezoneは、UTCからのオフセットを秒単位で返します。

timeモジュールを使う方法

import time
print(-time.timezone)  # インドのタイムゾーン: +5:30 の場合

出力

19800

time.timezoneは西回りのオフセットを正の値として返すため、通常は先頭にマイナスを付けて使用します。上記の例では、インド標準時(UTC+5:30)に相当する19800秒(5.5時間 × 3600秒)が得られます。

なお、夏時間(DST)が採用されている地域の環境では、time.altzoneを参照すると夏時間適用時のオフセットを取得できます。

datetimeの差分から求める方法

別のアプローチとして、UTCとローカルタイムゾーンそれぞれのdatetimeオブジェクトを作成し、その差を計算することでもタイムゾーンを求められます。

import time
from datetime import datetime

ts = time.time()
utc_offset = (datetime.fromtimestamp(ts) -
              datetime.utcfromtimestamp(ts)).total_seconds()

print(utc_offset)

出力

19800.0

この方法では、datetime.fromtimestamp()がローカル時刻を、datetime.utcfromtimestamp()がUTC時刻を返すという性質を利用しています。両者の差分をtotal_seconds()で秒数に変換すれば、UTCオフセットを算出できます。

補足として、Python 3.9以降ではzoneinfoモジュールやdatetime.now().astimezone()を使うことで、より明示的かつ堅牢にタイムゾーン情報を扱うことも可能です。用途に応じて適切な方法を選択してください。

  1. PythonのTkinterでポップアップダイアログを表示する方法【messagebox活用ガイド】

    Tkinterは、GUIベースのアプリケーションを作成・開発するためのPython標準ライブラリです。Tkinterを使えばアプリケーションを構築し、さまざまなウィジェットを追加することで、よりインタラクティブな画面を作ることができます。ここでは、アプリケーション内でポップアップダイアログを表示する方法を紹介します。この場合に役立つのが、tkinterに組み込まれているmessageboxモジュールです。messageboxを使うと、エラーメッセージ、情報ボックス、確認ダイアログなど、さまざまな種類のダイアログボックスを簡単に表示できます。サンプルコード以下の例では、クリックすると画面上にポッ

  2. Pythonで時系列データをプロットする方法をわかりやすく解説

    Pythonのmatplotlibを使えば、時系列データ(日時を軸にしたデータ)を簡単にグラフ化できます。ここでは、datetimeオブジェクトを含むデータを折れ線グラフとして描画する基本的な手順を紹介します。 時系列プロットの基本手順 numpyを使用して、x軸(日時データ)とy軸(数値データ)を作成します。 plot()メソッドを使って、作成したx・yのデータをプロットします。 show()メソッドを実行して、図を画面に表示します。 コード例 以下のサンプルコードでは、2021年1月1日の0時から23時までの24個の日時データを生成し、それに対応するランダムな数値をy軸としてプロットし