Rumah >pembangunan bahagian belakang >Tutorial Python >[python] Bagaimana untuk menukar tarikh dan masa dalam zon waktu yang berbeza tanpa menggunakan pytz, dateutil
Artikel ini memperkenalkan cara menggunakan modul datetime
dan modul zoneinfo
dalam Python 3.6 dan ke atas, tanpa memerlukan perpustakaan pihak ketiga pytz
dan dateutil
, untuk menukar tarikh dan masa dengan mudah dalam berbeza zon waktu.
Kaedah teras: Gunakan kaedah datetime
objek astimezone
.
Langkah ringkas:
datetime
yang mengandungi maklumat zon waktu. astimezone
. Prasyarat:
Semak dan pasang tzdata:
Jalankan arahan berikut dalam terminal atau command prompt untuk menyemak sama ada sistem mempunyai data zon waktu yang diperlukan dipasang:
<code class="language-bash">python3 -c '__import__("zoneinfo").available_timezones()'</code>
Jika output ialah set kosong set()
, anda perlu memasang tzdata
:
<code class="language-bash">pip install tzdata</code>
Langkah dan contoh terperinci:
1 Cipta objek datetime
yang mengandungi maklumat zon waktu:
datetime.now()
dan tentukan parameter tz
sebagai ZoneInfo("localtime")
untuk mendapatkan waktu tempatan. <code class="language-python">from datetime import datetime from zoneinfo import ZoneInfo dt = datetime.now(tz=ZoneInfo("localtime"))</code>
datetime
dan nyatakan parameter tzinfo
. <code class="language-python">dt = datetime(2025, 1, 1, 0, 0, tzinfo=ZoneInfo("Europe/Istanbul"))</code>
datetime.fromtimestamp()
dan nyatakan parameter tz
. <code class="language-python">unix_time = 1675000000 # 示例UNIX时间戳 dt = datetime.fromtimestamp(unix_time, tz=ZoneInfo("UTC"))</code>
2. Gunakan kaedah astimezone
untuk menukar zon waktu:
Tukar objek astimezone()
kepada zon waktu sasaran menggunakan kaedah datetime
.
<code class="language-python">pst = dt.astimezone(ZoneInfo("US/Pacific"))</code>
Contoh: Tukarkan 1 Januari 2025 0:00 Waktu Istanbul, Turki kepada Waktu Piawai Pasifik (PST) di Amerika Syarikat.
<code class="language-python">from datetime import datetime from zoneinfo import ZoneInfo tr = datetime(2025, 1, 1, 0, 0, tzinfo=ZoneInfo("Europe/Istanbul")) pst = tr.astimezone(ZoneInfo("US/Pacific")) print(f"Istanbul Time: {tr.isoformat()}") print(f"Pacific Standard Time: {pst.isoformat()}")</code>
Keluaran adalah serupa dengan:
<code>Istanbul Time: 2025-01-01T00:00:00+03:00 Pacific Standard Time: 2024-12-31T13:00:00-08:00</code>
Melalui langkah di atas, anda boleh menggunakan modul asli Python dengan mudah untuk melengkapkan penukaran tarikh dan masa dalam zon waktu yang berbeza tanpa bergantung pada perpustakaan pihak ketiga tambahan. Ingat untuk memilih kaedah yang sesuai untuk mencipta datetime
objek berdasarkan keperluan sebenar anda.
Atas ialah kandungan terperinci [python] Bagaimana untuk menukar tarikh dan masa dalam zon waktu yang berbeza tanpa menggunakan pytz, dateutil. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!