Rumah >pembangunan bahagian belakang >Tutorial Python >Mengendalikan zon waktu dalam Python

Mengendalikan zon waktu dalam Python

PHPz
PHPzke hadapan
2023-08-19 14:41:131426semak imbas

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.

Pemasangan

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().

Sintaks

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

Algoritma

  • 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

Menetapkan Zon Waktu

Buat objek zon waktu menggunakan fungsi pytz.timezone() dan tetapkan ia kepada pembolehubah

Contoh

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)

Output

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

Menukar Masa Antara Zon Masa

Menggunakan datetime dan pytz, kita boleh menggunakan kaedah astimezone() bagi objek datetime.

Contoh

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)

Output

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.

Format masa menggunakan zon waktu

Pemformatan menjadi lebih mudah dengan kaedah strftime() objek datetime.

Contoh

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)

Output

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

Kesimpulan

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam

Artikel berkaitan

Lihat lagi