Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menukar Cap Masa dengan Offset Zon Waktu kepada Objek datetime Python?

Bagaimana untuk Menukar Cap Masa dengan Offset Zon Waktu kepada Objek datetime Python?

DDD
DDDasal
2024-11-27 05:48:09483semak imbas

How to Convert Timestamps with Timezone Offsets to Python datetime Objects?

Menukar Cap Masa dengan Offset kepada Objek Masa Tarikh Menggunakan strptime

Menukar cap masa daripada format "YYYY-MM-DDTHH:MM:SS-hh:mm" kepada objek datetime dalam Python menggunakan kaedah strptime boleh mencabar kerana masa mengimbangi maklumat.

Dalam contoh yang disediakan, strptime gagal menghuraikan cap waktu dengan offset "-07:00" menggunakan "%Y-%m-%dT%H:%M:%S-%z "format. Ini kerana strptime tidak menyokong arahan '%z' untuk zon waktu dalam Python 2 secara asli.

Pilihan Penyelesaian:

1. Abaikan Zon Waktu:

Jika maklumat zon waktu tidak penting, anda boleh mengabaikannya dengan menghuraikan rentetan sehingga offset:

time_str = "2012-07-24T23:14:29-07:00"
time_obj = datetime.datetime.strptime(time_str[:19], '%Y-%m-%dT%H:%M:%S')

2. Gunakan Modul dateutil:

Sebagai alternatif, modul dateutil menyediakan fungsi penghuraian yang lebih mantap yang menyokong zon waktu:

from dateutil.parser import parse
time_obj = parse(time_str)

Sokongan Python 3:

Dalam Python 3.2 dan lebih baru, terdapat sokongan yang lebih baik untuk pengendalian zon waktu. Mengalih keluar ":" terakhir daripada ofset dan menggantikan "-" dengan " ":

time_str = "2012-07-24T23:14:29-07:00"
time_obj = datetime.datetime.strptime(''.join(time_str.rsplit(':', 1)), '%Y-%m-%dT%H:%M:%S%z')

Ini akan menghuraikan cap waktu dengan betul dan mencipta objek datetime dengan ofset zon waktu yang ditentukan.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Cap Masa dengan Offset Zon Waktu kepada Objek datetime Python?. 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