Menukar cap masa format "2012-07-24T23:14:29- 07:00" hingga objek datetime menggunakan strptime() boleh bermasalah kerana masa offset pada penghujung (-07:00). Tanpa offset, adalah mungkin untuk menggunakan strptime() seperti berikut:
time_str = "2012-07-24T23:14:29" time_obj = datetime.datetime.strptime(time_str, '%Y-%m-%dT%H:%M:%S')
Walau bagaimanapun, menggunakan ofset masa yang disediakan mengakibatkan ValueError disebabkan arahan 'z' tidak disokong.
Terdapat dua utama penyelesaian:
1. Abaikan Zon Waktu Menggunakan strptime():
Alih keluar bahagian zon waktu daripada cap waktu sebelum menghuraikan:
time_obj = datetime.datetime.strptime(time_str[:19], '%Y-%m-%dT%H:%M:%S')
2. Gunakan dateutil.parser:
Modul dateutil menawarkan fungsi parse yang menyokong zon waktu:
from dateutil.parser import parse time_obj = parse(time_str)
Untuk Python versi 3.2 dan ke atas , sokongan zon waktu telah dipertingkatkan. %z akan berfungsi selepas melaraskan rentetan format seperti berikut:
time_obj = datetime.datetime.strptime(time_str, '%Y-%m-%dT%H:%M:%S%z')
Atas ialah kandungan terperinci Bagaimana untuk Menukar Cap Masa dengan Offset Zon Waktu kepada Objek DateTime dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!