datetimeモジュールのutcnow()関数を使用して、現在のUTC時刻を取得できます。
>>> import datetime
>>> utc_datetime = datetime.datetime.utcnow()
>>> utc_datetime.strftime("%Y-%m-%d %H:%M:%S")
'2010-02-01 06:59:19'
上記のトムによるリンク:http : //lucumr.pocoo.org/2011/7/15/eppur-si-muove/ は次のように述べています:
UTCは夏時間なしのタイムゾーンであり、過去に設定変更のないタイムゾーンです。
時間は常にUTCで測定して保存します。
時間がかかった場所を記録する必要がある場合は、それを別に保管してください。
現地時間+タイムゾーン情報を保存しないでください!
注 -データがDSTを使用するリージョンにある場合は、pytz
John Millikinの回答を使用して確認してください。
与えられた文字列からUTC時刻を取得したい場合、そしてDSTを使用しない世界の地域にいることができる幸運な場合、またはDSTを適用せずにUTCからのみオフセットされたデータがある場合:
->現地時間をオフセット値の基準として使用:
>>> # Obtain the UTC Offset for the current system:
>>> UTC_OFFSET_TIMEDELTA = datetime.datetime.utcnow() - datetime.datetime.now()
>>> local_datetime = datetime.datetime.strptime("2008-09-17 14:04:00", "%Y-%m-%d %H:%M:%S")
>>> result_utc_datetime = local_datetime + UTC_OFFSET_TIMEDELTA
>>> result_utc_datetime.strftime("%Y-%m-%d %H:%M:%S")
'2008-09-17 04:04:00'
->または、既知のオフセットから、datetime.timedelta()を使用します。
>>> UTC_OFFSET = 10
>>> result_utc_datetime = local_datetime - datetime.timedelta(hours=UTC_OFFSET)
>>> result_utc_datetime.strftime("%Y-%m-%d %H:%M:%S")
'2008-09-17 04:04:00'
更新:
Python 3.2以降datetime.timezone
が利用可能です。以下のコマンドを使用して、タイムゾーン対応の日時オブジェクトを生成できます。
import datetime
timezone_aware_dt = datetime.datetime.now(datetime.timezone.utc)
タイムゾーン変換を行う準備ができている場合は、以下をお読みください。
https://medium.com/@eleroy/10-things-you-need-to-know-about-date-and-time-in-python-with-datetime-pytz-dateutil-timedelta-309bfbafb3f7