Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menghuraikan Rentetan ISO 8601 dengan Cekap ke dalam Objek datetime Python?

Bagaimana untuk Menghuraikan Rentetan ISO 8601 dengan Cekap ke dalam Objek datetime Python?

Susan Sarandon
Susan Sarandonasal
2024-12-18 03:46:15216semak imbas

How to Efficiently Parse ISO 8601 Strings into Python datetime Objects?

Cara Menghuraikan Rentetan ISO 8601 ke dalam Objek Datetime Python

ISO 8601 ialah piawaian yang digunakan secara meluas untuk mewakili tarikh dan masa. Ia sering digunakan dalam pertukaran data dan perkhidmatan web. Walau bagaimanapun, menghuraikan rentetan ISO 8601 ke dalam objek datetime Python boleh menjadi agak mencabar.

Pendekatan Hackish

Satu pendekatan biasa ialah menggunakan fungsi time.strptime() untuk menghuraikan rentetan. Walau bagaimanapun, pendekatan ini boleh membosankan dan terdedah kepada kesilapan. Berikut ialah contoh:

datetime.datetime(*time.strptime("2009-05-28T16:15:00", "%Y-%m-%dT%H:%M:%S")[:6])

Penyelesaian Lebih Bersih

Nasib baik, terdapat cara yang lebih elegan untuk menghuraikan rentetan ISO 8601. Pustaka dateutil menyediakan fungsi yang mudah dipanggil parser.parse():

from dateutil import parser

yourdate = parser.parse("2009-05-28T16:15:00")

Fungsi ini boleh mengendalikan pelbagai format ISO 8601, termasuk rentetan dengan zon waktu.

Contoh Penggunaan

Berikut ialah beberapa contoh cara menggunakan parser.parse() fungsi:

# Parse a basic ISO 8601 string
dateutil.parser.parse("2009-05-28T16:15:00Z")

# Parse a string with a timezone offset
dateutil.parser.parse("2009-05-28T16:15:00-05:00")

# Parse a string with a fractional second
dateutil.parser.parse("2009-05-28T16:15:00.123Z")

Fungsi parser.parse() mengembalikan objek datetime yang boleh anda gunakan dalam kod Python anda.

Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Rentetan ISO 8601 dengan Cekap ke dalam 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