Rumah >pembangunan bahagian belakang >Tutorial Python >[python] Bagaimana untuk menukar tarikh dan masa dalam zon waktu yang berbeza tanpa menggunakan pytz, dateutil

[python] Bagaimana untuk menukar tarikh dan masa dalam zon waktu yang berbeza tanpa menggunakan pytz, dateutil

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-27 16:11:13515semak imbas

Tidak memerlukan pytz dan dateutil, Python secara asalnya melaksanakan penukaran tarikh dan masa dalam zon waktu yang berbeza

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:

  1. Mencipta objek datetime yang mengandungi maklumat zon waktu.
  2. Tukar tarikh masa kepada zon masa sasaran menggunakan kaedah astimezone.

Prasyarat:

  • Python >= 3.6
  • tzdata (sistem Windows dan beberapa persekitaran khas mungkin perlu dipasang)

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:

  • Dapatkan masa semasa dan tentukan zon waktu: Gunakan kaedah 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>
  • Tentukan masa tarikh dan zon masa tertentu: Gunakan pembina datetime dan nyatakan parameter tzinfo.
<code class="language-python">dt = datetime(2025, 1, 1, 0, 0, tzinfo=ZoneInfo("Europe/Istanbul"))</code>
  • Tukar daripada cap waktu UNIX: Gunakan kaedah 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>

[python] pytz, dateutil を使わずに異なるタイムゾーンの日時に変換する方法

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!

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