Kiểm tra xem chuỗi có phải là ngày hay không trong python

Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách xác thực ngày trong python. Bây giờ chúng ta thấy 2 phương pháp để hoàn thành nhiệm vụ này−

  • Sử dụng ngày giờ. hàm strptime[]

  • Sử dụng dateutil. trình phân tích cú pháp. hàm phân tích []

Phương pháp 1. Sử dụng ngày giờ. hàm strptime[]

Thuật toán [Các bước]

Sau đây là Thuật toán/các bước cần tuân thủ để thực hiện tác vụ mong muốn -

  • Sử dụng từ khóa nhập để nhập mô-đun datetime[Để làm việc với ngày và giờ]

  • Nhập ngày dưới dạng chuỗi và tạo một biến để lưu trữ nó

  • Nhập định dạng ngày tháng dưới dạng chuỗi và tạo một biến khác để lưu trữ

  • Sử dụng các khối try−ngoại trừ để xử lý các ngoại lệ [Trong Python, các câu lệnh Thử và Ngoại trừ được sử dụng để xử lý các lỗi này. Khối try được sử dụng để kiểm tra một số mã lỗi, tôi. e. mã bên trong khối thử sẽ thực thi nếu chương trình không có lỗi. Mặt khác, mã trong khối ngoại trừ sẽ được thực thi bất cứ khi nào chương trình gặp lỗi trong khối thử trước đó]

  • Trong khối thử, chuyển chuỗi ngày đã cho và định dạng ngày làm đối số cho hàm strptime[][định dạng dấu thời gian ở định dạng chuỗi thành đối tượng date−time] của lớp datetime của mô-đun datetime và lưu kết quả vào một biến

  • In kết quả trên trong khối thử. Ở đây nó in ngày đã định dạng nếu không có lỗi

  • Nếu việc xác thực ngày ở trên không thành công thì nó sẽ thực thi khối ngoại trừ. Bên trong khối ngoại trừ, in văn bản thích hợp nếu xảy ra ValueError

Thí dụ

Chương trình sau trả về ngày đã cho có hợp lệ hay không bằng cách sử dụng hàm strptime[] −

đầu ra

Khi thực thi, chương trình trên sẽ tạo đầu ra sau -

2017-12-31 00:00:00

Bạn có thể sử dụng nhiều lệnh khác để phân tích ngày. Sau đây là các lệnh được hỗ trợ bởi chuỗi định dạng của strptime[]

Chỉ thịMeaning tên ngày trong tuần viết tắt của %aLocale. Tên ngày trong tuần đầy đủ của %ALocale. Tên tháng viết tắt của %bLocale. Tên tháng đầy đủ của %BLocale. Đại diện ngày và giờ thích hợp của %cLocale. %ngày trong tháng dưới dạng số thập phân [01,31]. %HHour [đồng hồ 24 giờ] dưới dạng số thập phân [00,23]. %IHour [đồng hồ 12 giờ] dưới dạng số thập phân [01,12]. %jDay của năm dưới dạng số thập phân [001,366]. %mMonth dưới dạng số thập phân [01,12]. %MMinute dưới dạng số thập phân [00,59]. %pLocale tương đương với AM hoặc PM. %Thứ hai dưới dạng số thập phân [00,61]. %UWeek số của năm [Chủ nhật là ngày đầu tiên của tuần] dưới dạng số thập phân [00,53]. Tất cả các ngày trong một năm mới trước Chủ nhật đầu tiên được coi là trong tuần 0. %wWeekday dưới dạng số thập phân [0[Chủ nhật],6]. %Số tuần của năm [Thứ hai là ngày đầu tiên của tuần] dưới dạng số thập phân [00,53]. Tất cả các ngày trong năm mới trước ngày thứ Hai đầu tiên được coi là trong tuần 0. Đại diện ngày thích hợp của %xLocale. Biểu diễn thời gian thích hợp của %XLocale. %năm không có thế kỷ dưới dạng số thập phân [00,99]. %Năm với thế kỷ dưới dạng số thập phân. %Tên múi giờ [không có ký tự nào của múi giờ không tồn tại]. %%Một ký tự "%" bằng chữ

Phương pháp 2. Sử dụng dateutil. trình phân tích cú pháp. hàm phân tích []

Trong phương pháp này, chúng tôi sử dụng một chức năng sẵn có riêng, dateutil. trình phân tích cú pháp, để kiểm tra định dạng đã được xác thực. Điều này không yêu cầu định dạng để xác thực một ngày

Thuật toán [Các bước]

  • Sử dụng từ khóa nhập để nhập trình phân tích cú pháp từ mô-đun dateutil

The parser module can parse datetime strings in a number of different formats. To parse dates and times in Python, there is no better package than dateutil. The tz module includes everything needed to look for timezones. When these modules are used together, it is relatively simple to convert strings into timezone−aware datetime objects.
  • Nhập ngày dưới dạng chuỗi và tạo một biến để lưu trữ nó

  • In ngày đầu vào đã cho

  • Sử dụng các khối try−except để xử lý các ngoại lệ. Bên trong khối thử, phân tích cú pháp chuỗi ngày đã cho bằng cách sử dụng hàm parse[]. Ở đây nó in true nếu ngày đã cho là chính xác

  • Nếu ngày không đúng/không hợp lệ thì mã khối ngoại trừ sẽ được thực thi. Ở đây Nếu có lỗi phân tích cú pháp cho ngày nhất định thì nó sẽ đưa ra ValueError để khối ngoại trừ xử lý ValueError và chúng tôi in một số văn bản để cho biết ngày đã cho không được xác thực

Thí dụ

Chương trình sau trả về ngày đã cho có hợp lệ hay không bằng cách sử dụng hàm parse[] −

đầu ra

Khi thực thi, chương trình trên sẽ tạo đầu ra sau -

Input Date: 23-41-2021
Incorrect data format

Phần kết luận

Chúng tôi đã học cách xác thực một ngày nhất định bằng hai phương pháp khác nhau trong bài viết này. Chúng ta cũng đã tìm hiểu về các lệnh khác mà hàm strptime[] hỗ trợ

Trong hướng dẫn này, chúng tôi sẽ kiểm tra xem một ngày có hợp lệ hay không bằng cách sử dụng python. Một ngày được gọi là hợp lệ nếu nó thực sự tồn tại trong lịch

Chương trình của chúng ta sẽ yêu cầu người dùng nhập ngày vào đầu chương trình. Sau đó, nó sẽ kiểm tra tính hợp lệ của ngày và in ra kết quả trên bàn điều khiển

Ví dụ: nếu ngày là '01/02/2012', nó sẽ in ra 'Ngày nhập hợp lệ' và nếu ngày là '31/02/2012', nó sẽ in ra 'Ngày nhập không hợp lệ'. ’

Để kiểm tra tính hợp lệ của ngày, chúng tôi sẽ sử dụng một mô-đun python có tên là 'datetime'. Mô-đun này không cung cấp bất kỳ phương pháp chuyên dụng nào để kiểm tra xem một ngày có hợp lệ hay không nhưng chúng tôi sẽ sử dụng mô-đun này bằng một thủ thuật đơn giản để tìm hiểu xem một ngày có hợp lệ hay không

Trước khi đi vào chi tiết, hãy để tôi giới thiệu nhanh với bạn về mô-đun datetime

Mô-đun datetime trong Python là một trong những mô-đun hữu ích nhất để làm việc với thời gian đơn giản và phức tạp. Chúng ta có thể nhập mô-đun này vào chương trình python bằng cách sử dụng câu lệnh 'nhập ngày giờ' ở đầu chương trình

Mô-đun này cung cấp rất nhiều phương pháp khác nhau để làm việc với thời gian. Ví dụ: chúng ta có thể sử dụng mô-đun này để in thời gian hiện tại, thêm ngày vào thời gian hiện tại, thêm giờ vào thời gian hiện tại, thêm phút vào thời gian hiện tại, v.v.

Mô-đun 'datetime' có thể hoạt động với các đối tượng thời gian 'ngây thơ' và 'nhận thức'

các đối tượng 'nhận thức' có thể chứa thông tin bổ sung với giá trị ngày giờ như thông tin tiết kiệm ánh sáng ban ngày, v.v. Các đối tượng này hữu ích nếu chúng ta đang xử lý dữ liệu từ các múi giờ khác nhau

các đối tượng 'ngây thơ' không chứa bất kỳ thông tin nào như vậy. Các đối tượng này rất dễ hiểu và chúng ta có thể sử dụng chúng nếu múi giờ, tiết kiệm ánh sáng ban ngày, v.v. thông tin không bắt buộc

Năm nhỏ nhất được mô-đun 'datetime' hỗ trợ được lưu trữ trong biến MINYEAR và năm được hỗ trợ tối đa được lưu trữ trong biến MAXYEAR. Giá trị của MINYEAR là 1 và MAXYEAR là 9999

Như tôi đã giải thích ở trên, nó không cung cấp bất kỳ phương pháp nào để kiểm tra tính hợp lệ của một ngày. Chúng tôi sẽ sử dụng hàm tạo của nó để tạo một đối tượng 'datetime' bằng cách sử dụng các giá trị do người dùng cung cấp. Nếu hàm tạo không thành công, nó sẽ đưa ra một lỗi. Chúng tôi sẽ cho rằng các giá trị đầu vào không hợp lệ trong trường hợp đó

Chủ Đề