Rumah > Artikel > pembangunan bahagian belakang > Mengendalikan zon waktu dalam Python
Zon waktu ialah kawasan geografi yang semua jam ditetapkan pada waktu standard yang sama, tetapi lokasi yang berbeza mungkin mempunyai pengimbangan masa yang berbeza disebabkan oleh pilihan politik, perubahan zon waktu sejarah, perbezaan waktu penjimatan siang dan faktor lain. Modul datetime Python dan perpustakaan pytz menyediakan satu set kelas untuk bekerja dengan tarikh, masa dan zon masa masing-masing. Pengurusan zon masa dalam pembangunan perisian adalah sangat penting kerana ia mempengaruhi ketepatan keputusan yang disediakan oleh program. Artikel ini akan memperkenalkan cara menggunakan modul datetime dan pytz untuk mengurus zon waktu dalam Python melalui tiga contoh beranotasi.
Anda mesti menggunakan modul datetime dan pytz Python untuk mengendalikan zon waktu. Fungsi zon waktu disediakan oleh pustaka pytz pakej pihak ketiga, manakala modul datetime menyediakan kelas untuk mengendalikan tarikh dan masa.
pip install pytz pip install datetime
Modul datetime menyediakan beberapa kelas untuk bekerja dengan tarikh dan masa. Kelas utama ialah tarikh, tzinfo, timedelta, masa dan tarikh masa.
Kelas datetime mewakili tarikh dan masa tertentu dan mempunyai beberapa atribut, termasuk tahun, bulan, hari, jam, minit, saat dan mikrosaat.
Terdapat juga banyak kaedah untuk memproses objek datetime dalam kelas datetime. Kita boleh menggunakan fungsi replace() untuk mengubah suai ciri satu atau lebih objek datetime sambil membiarkan ciri lain tidak terjejas.
Objek masa tarikh boleh diformatkan sebagai rentetan dengan cara yang ditentukan menggunakan fungsi strftime().
Fungsi zon waktu() perpustakaan pytz boleh digunakan untuk menetapkan zon waktu dalam Python Modul datetime boleh menggunakan objek zon waktu yang dikembalikan oleh fungsi zone(), yang menerima rentetan yang menyatakan nama zon waktu. kami boleh menggunakan kod berikut untuk menetapkan zon waktu kepada "AS/Timur" −
import pytz from datetime import datetime eastern = pytz.timezone('US/Eastern') dt = datetime.now(eastern)
Walau bagaimanapun, kelas datetime tidak menyediakan sokongan terbina dalam untuk zon waktu di situlah perpustakaan pytz masuk. Modul pytz menyediakan kelas zon waktu, yang mewakili objek zon waktu Objek zon waktu mengandungi maklumat tentang pengimbangan zon waktu, penjimatan siang peraturan masa, dan nama zon waktu
Modul pytz juga menyediakan beberapa fungsi untuk bekerja dengan zon waktu, termasuk localize() dan normalize(). Fungsi localize() digunakan untuk menetapkan zon waktu untuk objek datetime, manakala fungsi normalize() digunakan untuk menukar objek datetime dari satu zon waktu kepada yang lain
Buat objek datetime untuk memaparkan masa dalam zon waktu tertentu
Gunakan localize() fungsi untuk menetapkan zon waktu
Tukar zon waktu dengan fungsi zon masa()
Tukar objek datetime kepada rentetan menggunakan fungsi strftime() untuk zon waktu tertentu
Buat objek zon waktu menggunakan fungsi pytz.timezone() dan tetapkan ia kepada pembolehubah
import pytz from datetime import datetime # Create a timezone object for US/Eastern eastern_tz = pytz.timezone('US/Eastern') now = datetime.now() now_eastern = eastern_tz.localize(now) print(now_eastern)
2023-04-17 16:58:31.317459-04:00
Buat objek zon waktu untuk AS/Timur menggunakan pytz.timezone(), buat objek datetime untuk masa semasa menggunakan datetime.now(), dan kemudian tetapkan zon waktu untuk objek datetime menggunakan localize() kaedah objek zon waktu
Menggunakan datetime dan pytz, kita boleh menggunakan kaedah astimezone() bagi objek datetime.
import pytz from datetime import datetime # Create a timezone object for US/Eastern eastern_tz = pytz.timezone('US/Eastern') now = datetime.now() now_eastern = eastern_tz.localize(now) # Convert the datetime object to Pacific timezone pacific_tz = pytz.timezone('US/Pacific') now_pacific = now_eastern.astimezone(pacific_tz) print(now_pacific)
2023-04-17 13:58:41.599015-07:00
Menggunakan pytz, cipta objek zon waktu untuk AS/Timur. Buat objek datetime masa semasa dengan memanggil kaedah zon waktu(). Selepas memanggil now(), gunakan fungsi localise() objek zon waktu untuk menetapkan zon waktu objek datetime.
Gunakan pytz.timezone() untuk membuat seketika objek zon waktu lain untuk AS/Pasifik dan gunakan kaedah astimezone() objek datetime untuk menukar objek datetime kepada zon waktu Pasifik.
Pemformatan menjadi lebih mudah dengan kaedah strftime() objek datetime.
import pytz from datetime import datetime # Create a timezone object for US/Eastern eastern_tz = pytz.timezone('US/Eastern') now = datetime.now() now_eastern = eastern_tz.localize(now) # Add formatting fmt = '%Y-%m-%d %H:%M:%S %Z%z' now_str = now_eastern.strftime(fmt) print(now_str)
2023-04-17 16:59:06 EDT-0400
Gunakan fungsi strftime() objek datetime Rentetan format '%Y-%m- %d%H:%M:%S%Z%z' memberikan tahun, bulan, hari, jam, minit. , dan kedua, serta singkatan zon waktu dan zon waktu diimbangi
Artikel ini memperkenalkan konsep teras dan amalan bekerja dengan zon waktu dalam Python. Selepas membincangkan kepentingan zon masa dalam pengaturcaraan, ia menerangkan cara zon masa berfungsi dalam pembangunan perisian. Perpustakaan dan pakej yang diperlukan, termasuk pytz dan datetime, kemudian dibincangkan, dan arahan pemasangan disediakan. Selepas itu, ia memperkenalkan cara zon waktu berfungsi dalam Python, termasuk menetapkan zon waktu, menukar masa antara zon waktu dan menggunakan zon waktu untuk memformat masa. Akhir sekali, kod sampel untuk setiap tugasan disediakan, bersama-sama dengan panduan tentang cara menyelesaikan isu zon waktu Python biasa.
Atas ialah kandungan terperinci Mengendalikan zon waktu dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!