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
Lepaskan: 2025-01-27 16:11:13
asal
522 orang telah melayarinya

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:

python3 -c '__import__("zoneinfo").available_timezones()'
Salin selepas log masuk

Jika output ialah set kosong set(), anda perlu memasang tzdata:

pip install tzdata
Salin selepas log masuk

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.
from datetime import datetime
from zoneinfo import ZoneInfo

dt = datetime.now(tz=ZoneInfo("localtime"))
Salin selepas log masuk
  • Tentukan masa tarikh dan zon masa tertentu: Gunakan pembina datetime dan nyatakan parameter tzinfo.
dt = datetime(2025, 1, 1, 0, 0, tzinfo=ZoneInfo("Europe/Istanbul"))
Salin selepas log masuk
  • Tukar daripada cap waktu UNIX: Gunakan kaedah datetime.fromtimestamp() dan nyatakan parameter tz.
unix_time = 1675000000  # 示例UNIX时间戳
dt = datetime.fromtimestamp(unix_time, tz=ZoneInfo("UTC"))
Salin selepas log masuk

2. Gunakan kaedah astimezone untuk menukar zon waktu:

Tukar objek astimezone() kepada zon waktu sasaran menggunakan kaedah datetime.

pst = dt.astimezone(ZoneInfo("US/Pacific"))
Salin selepas log masuk

Contoh: Tukarkan 1 Januari 2025 0:00 Waktu Istanbul, Turki kepada Waktu Piawai Pasifik (PST) di Amerika Syarikat.

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()}")
Salin selepas log masuk

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>
Salin selepas log masuk

[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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan