Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menukar Cap Masa dengan Offset Zon Waktu kepada Objek datetime Python?
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!