Khi bạn có thể nhận được các chuỗi có cấu trúc nhưng không nhất thiết phải chuẩn hoặc các chuỗi dạng tự do khác nhau, thì dateutil là tốt, như một dự phòng hoặc nói chung. (nó cũng có logic dựa trên ngày khác nhau mà bạn có thể không muốn tự làm) Bạn có thể muốn chức năng Ví dụ >>> dateutil.parser.parse('2015-06-26 23:00:41') datetime.datetime(2015, 6, 26, 23, 0, 41) >>> dateutil.parser.parse("Thu Sep 25 2003") datetime.datetime(2003, 9, 25, 0, 0) Nó dường như phù hợp với các mẫu đã biết, vì vậy sẽ hoạt động trên nhiều thứ thông thường/tiêu chuẩn Vào những ngày không rõ ràng như 02-04-2012, bạn có thể phải hướng dẫn nó, xem e. g. Apache sử dụng định dạng ngày-giờ-với-múi giờ như 29/Nov/2013:14:21:20 +0100 ngày sử dụng. trình phân tích cú pháp. phân tích cú pháp vớiuzzy=True sẽ xử lý Bạn có thể thực hiện với hàng chục dòng thao tác chuỗi, có thể nhanh hơn một chút (xác minh) (TODO. thêm vào đó) Có thể trích xuất một ngày ra khỏi văn bản bằng cách sử dụng chế độ "mờ", trong đó các thành phần của chuỗi không được nhận dạng là một phần của ngày bị bỏ qua
4 bây giờ là một đối tượng 5 và bạn sẽ thấy 6 được in ra Mô-đun trình phân tích cú pháp có thể phân tích các chuỗi ngày giờ ở nhiều định dạng hơn. Không thể có thư viện nào tốt hơn dateutil để phân tích ngày và giờ trong Python. Để tra cứu múi giờ, mô-đun tz cung cấp mọi thứ. Khi các mô-đun này được kết hợp, chúng giúp dễ dàng phân tích các chuỗi thành các đối tượng ngày giờ nhận biết múi giờ Cài đặt. Mã số. Ví dụ phân tích cú pháp 7 8 9datetime.datetime(2016, 6, 16, 0, 0)0 datetime.datetime(2016, 6, 16, 0, 0)1 datetime.datetime(2016, 6, 16, 0, 0)2 datetime.datetime(2016, 6, 16, 0, 0)3 datetime.datetime(2016, 6, 16, 0, 0)0 datetime.datetime(2016, 6, 16, 0, 0)1 datetime.datetime(2016, 6, 16, 0, 0)2 datetime.datetime(2016, 6, 16, 0, 0)2 datetime.datetime(2016, 6, 16, 0, 0)3 datetime.datetime(2016, 6, 16, 0, 0)0 datetime.datetime(2016, 6, 16, 0, 0)6 datetime.datetime(2016, 6, 16, 0, 0)2 datetime.datetime(2016, 6, 16, 0, 0)2 datetime.datetime(2016, 6, 16, 0, 0)3 datetime.datetime(2016, 6, 16, 0, 0)0 29/Nov/2013:14:21:20 +010001 datetime.datetime(2016, 6, 16, 0, 0)2 datetime.datetime(2016, 6, 16, 0, 0)2 datetime.datetime(2016, 6, 16, 0, 0)3 datetime.datetime(2016, 6, 16, 0, 0)0 29/Nov/2013:14:21:20 +010006 datetime.datetime(2016, 6, 16, 0, 0)2 datetime.datetime(2016, 6, 16, 0, 0)2 datetime.datetime(2016, 6, 16, 0, 0)3 datetime.datetime(2016, 6, 16, 0, 0)0 71____32đầu ra 29/Nov/2013:14:21:20 +01007 Tất cả những gì cần làm là nhập mô-đun trình phân tích cú pháp và gọi hàm parse() bằng chuỗi ngày giờ. Trình phân tích cú pháp có thể trả về một đối tượng thời gian hợp lý, nhưng nó không thể phân tích cú pháp chuỗi, nó sẽ gây ra ValueError.
73 74 75 76 77 78đầu ra datetime.datetime(2016, 6, 16, 0, 0) Một vấn đề đặt hàng khác có thể xảy ra với năm có hai chữ số. nhưng '19-6-19′ là một định dạng ngày không rõ ràng. Vì dateutil mặc định ở định dạng Tháng-Ngày-Năm, '11-6-19′ được phân tích thành năm 2019. Nhưng nếu yearfirst = True được chuyển vào parse(), nó có thể được phân tích thành năm 2011 datetime.datetime(2016, 6, 16, 0, 0)3 datetime.datetime(2016, 6, 16, 0, 0)0 81datetime.datetime(2016, 6, 16, 0, 0)2 datetime.datetime(2016, 6, 16, 0, 0)3 datetime.datetime(2016, 6, 16, 0, 0)0 85 86 76 77datetime.datetime(2016, 6, 16, 0, 0)2 đầu ra 29/Nov/2013:14:21:20 +01000 trình phân tích cú pháp dateutil cũng có thể thực hiện phân tích cú pháp mờ và cho phép bỏ qua các ký tự không liên quan trong chuỗi ngày giờ. parse() sẽ tăng ValueError với giá trị mặc định là Sai, khi nó gặp các mã thông báo không xác định. Một đối tượng ngày giờ thường có thể được trả về, nếu mờ = True |