Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menukar UTC Datetime ke Local Datetime Menggunakan Python Standard Library?

Bagaimana untuk Menukar UTC Datetime ke Local Datetime Menggunakan Python Standard Library?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 09:02:02333semak imbas

How to Convert UTC Datetime to Local Datetime Using Python Standard Library?

Menukar Datetime UTC ke Local Datetime Menggunakan Python Standard Library

Apabila berurusan dengan objek datetime, selalunya perlu menukar antara UTC (Coordinated Waktu Sejagat) dan waktu tempatan. Pustaka standard Python menyediakan fungsi terbina dalam untuk mencapai ini.

Alternatif pytz untuk Python 3.3

Dalam Python 3.3 dan ke atas, modul zon waktu memudahkan proses penukaran:

<code class="python">from datetime import datetime, timezone

def utc_to_local(utc_dt):
    return utc_dt.replace(tzinfo=timezone.utc).astimezone(tz=None)</code>

Penyelesaian untuk Python 2/3

Untuk Python 2 dan 3, pendekatan alternatif ialah menggunakan calendar.timegm dan datetime.fromtimestamp:

<code class="python">import calendar
from datetime import datetime, timedelta

def utc_to_local(utc_dt):
    timestamp = calendar.timegm(utc_dt.timetuple())
    local_dt = datetime.fromtimestamp(timestamp)
    assert utc_dt.resolution >= timedelta(microseconds=1)
    return local_dt.replace(microsecond=utc_dt.microsecond)</code>

Contoh Penggunaan

Untuk menggambarkan penukaran, pertimbangkan contoh berikut:

<code class="python">from datetime import datetime

utc_dt = datetime(2023, 7, 18, 12, 0, 0, tzinfo=timezone.utc)

local_dt = utc_to_local(utc_dt)
print(local_dt)</code>

Output:

2023-07-18 18:00:00.000000+06:00

Nota untuk DateTime tanpa Resolusi Mikrosaat

Dalam kes di mana waktu tarikh UTC tidak mempunyai resolusi mikrosaat, kaedah zon masa mungkin memperkenalkan nilai mikrosaat yang tidak terdapat dalam waktu tarikh asal. Untuk memastikan ketepatan, gunakan kaedah alternatif yang disediakan untuk Python 2/3.

Mengendalikan Perubahan DST

Kedua-dua penyelesaian mengambil kira perubahan waktu penjimatan siang (DST) dan dengan betul tukar waktu tarikh UTC kepada waktu tempatan yang sesuai dengan DST digunakan atau dialih keluar mengikut keperluan.

Atas ialah kandungan terperinci Bagaimana untuk Menukar UTC Datetime ke Local Datetime Menggunakan Python Standard Library?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn