Python 3でローカル時間文字列をUTCに変換する方法

PYTHON3 チュートリアル

Python 3でローカル時間文字列をUTCに変換する方法

Python 3を使用して、ローカル時間をUTC(協定世界時)に変換することは、特にグローバルなアプリケーションを開発する際に非常に重要です。この記事では、Pythonの標準ライブラリを使用して、ローカル時間をUTCに変換する方法を詳しく説明します。以下では、3つの異なる方法でこれを実現する方法を紹介します。

方法1: datetimeモジュールとpytzライブラリを使用する

Pythonの標準ライブラリであるdatetimeモジュールと、サードパーティライブラリのpytzを使用すると、時間の変換が簡単に行えます。まず、pytzをインストールする必要があります。

pip install pytz

以下は、ローカル時間をUTCに変換するサンプルコードです。

from datetime import datetime
import pytz

# ローカル時間を定義
local_time_str = "2023-10-25 15:30:00"
local_time = datetime.strptime(local_time_str, "%Y-%m-%d %H:%M:%S")

# ローカルタイムゾーンを設定
local_tz = pytz.timezone('Asia/Tokyo')

# ローカル時間をタイムゾーン付きの時間に変換
local_dt = local_tz.localize(local_time)

# UTCに変換
utc_dt = local_dt.astimezone(pytz.utc)

print("UTC時間:", utc_dt.strftime("%Y-%m-%d %H:%M:%S"))

このコードを実行すると、次のような出力が得られます。

UTC時間: 2023-10-25 06:30:00

方法2: dateutilライブラリを使用する

dateutilライブラリは、Pythonのdatetimeモジュールを拡張して、タイムゾーンの操作をより簡単にするためのものです。まず、dateutilをインストールします。

pip install python-dateutil

以下は、dateutilライブラリを使用したサンプルコードです。

from datetime import datetime
from dateutil import tz

# ローカル時間を定義
local_time_str = "2023-10-25 15:30:00"
local_time = datetime.strptime(local_time_str, "%Y-%m-%d %H:%M:%S")

# ローカルタイムゾーンとUTCタイムゾーンを設定
from_zone = tz.gettz('Asia/Tokyo')
to_zone = tz.gettz('UTC')

# ローカル時間をタイムゾーン付きの時間に変換
local_time = local_time.replace(tzinfo=from_zone)

# UTCに変換
utc_time = local_time.astimezone(to_zone)

print("UTC時間:", utc_time.strftime("%Y-%m-%d %H:%M:%S"))

このコードを実行すると、次のような出力が得られます。

UTC時間: 2023-10-25 06:30:00

方法3: zoneinfoモジュールを使用する(Python 3.9以降)

Python 3.9以降では、zoneinfoモジュールを使用してタイムゾーンの操作を行うことができます。このモジュールを使用することで、外部ライブラリに依存せずにタイムゾーンを扱うことができます。

from datetime import datetime
from zoneinfo import ZoneInfo

# ローカル時間を定義
local_time_str = "2023-10-25 15:30:00"
local_time = datetime.strptime(local_time_str, "%Y-%m-%d %H:%M:%S")

# ローカルタイムゾーンを設定
local_time = local_time.replace(tzinfo=ZoneInfo('Asia/Tokyo'))

# UTCに変換
utc_time = local_time.astimezone(ZoneInfo('UTC'))

print("UTC時間:", utc_time.strftime("%Y-%m-%d %H:%M:%S"))

このコードを実行すると、次のような出力が得られます。

UTC時間: 2023-10-25 06:30:00

これらの方法を使用することで、Python 3を用いて簡単にローカル時間をUTCに変換することができます。用途に応じて、最適な方法を選択してください。

Python 3でローカル時間文字列をUTCに変換する方法は、まずdatetimeモジュールを使用して日付と時刻を扱います。次に、pytzモジュールを使ってタイムゾーン情報を取得し、ローカル時間をUTCに変換します。

以下は、ローカル時間文字列をUTCに変換するPythonコードの例です。

“`python
import pytz
from datetime import datetime

# ローカル時間文字列
local_time_str = ‘2022-01-01 12:00:00’

# ローカル時間文字列をdatetimeオブジェクトに変換
local_time = datetime.strptime(local_time_str, ‘%Y-%m-%d %H:%M:%S’)

# ローカル時間をUTCに変換
local_tz = pytz.timezone(‘Asia/Tokyo’) # ローカルタイムゾーンを指定
utc_time = local_tz.localize(local_time).astimezone(pytz.utc)

print(utc_time)
“`

このコードでは、’2022-01-01 12:00:00’というローカル時間文字列をUTCに変換しています。pytzモジュールを使用することで、タイムゾーン情報を正しく処理し、適切なUTC時間を取得することができます。

購読
通知
0 Comments
Inline Feedbacks
View all comments