Hướng dẫn how do you validate a timestamp in python? - làm cách nào để bạn xác nhận dấu thời gian trong python?

Thư viện Python dateutil được thiết kế cho việc này (và hơn thế nữa). Nó sẽ tự động chuyển đổi điều này thành đối tượng datetime cho bạn và tăng

>>> parse("2003-09-251")
Traceback (most recent call last):
  File "", line 1, in 
  File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 720, in parse
    return DEFAULTPARSER.parse(timestr, **kwargs)
  File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 317, in parse
    ret = default.replace(**repl)
ValueError: day is out of range for month
0 nếu không.

Ví dụ:

>>> from dateutil.parser import parse
>>> parse("2003-09-25")
datetime.datetime(2003, 9, 25, 0, 0)

Điều này sẽ tăng

>>> parse("2003-09-251")
Traceback (most recent call last):
  File "", line 1, in 
  File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 720, in parse
    return DEFAULTPARSER.parse(timestr, **kwargs)
  File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 317, in parse
    ret = default.replace(**repl)
ValueError: day is out of range for month
0 nếu ngày không được định dạng chính xác:

>>> parse("2003-09-251")
Traceback (most recent call last):
  File "", line 1, in 
  File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 720, in parse
    return DEFAULTPARSER.parse(timestr, **kwargs)
  File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 317, in parse
    ret = default.replace(**repl)
ValueError: day is out of range for month

dateutil cũng cực kỳ hữu ích nếu bạn bắt đầu cần phân tích các định dạng khác trong tương lai, vì nó có thể xử lý hầu hết các định dạng được biết đến một cách thông minh và cho phép bạn sửa đổi thông số kỹ thuật của mình: dateutil Các ví dụ phân tích cú pháp.

Nó cũng xử lý thời gian nếu bạn cần điều đó.

Cập nhật dựa trên nhận xét:

>>> parse("2003-09-251")
Traceback (most recent call last):
  File "", line 1, in 
  File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 720, in parse
    return DEFAULTPARSER.parse(timestr, **kwargs)
  File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 317, in parse
    ret = default.replace(**repl)
ValueError: day is out of range for month
4 cũng chấp nhận đối số từ khóa
>>> parse("2003-09-251")
Traceback (most recent call last):
  File "", line 1, in 
  File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 720, in parse
    return DEFAULTPARSER.parse(timestr, **kwargs)
  File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 317, in parse
    ret = default.replace(**repl)
ValueError: day is out of range for month
5 kiểm soát xem ngày hoặc tháng dự kiến ​​sẽ đến trước nếu ngày không rõ ràng. Điều này mặc định là sai. Ví dụ.
:
>>> parse("2003-09-251")
Traceback (most recent call last):
  File "", line 1, in 
  File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 720, in parse
    return DEFAULTPARSER.parse(timestr, **kwargs)
  File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 317, in parse
    ret = default.replace(**repl)
ValueError: day is out of range for month
4 also accepts the keyword argument
>>> parse("2003-09-251")
Traceback (most recent call last):
  File "", line 1, in 
  File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 720, in parse
    return DEFAULTPARSER.parse(timestr, **kwargs)
  File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 317, in parse
    ret = default.replace(**repl)
ValueError: day is out of range for month
5 which controls whether the day or month is expected to come first if a date is ambiguous. This defaults to False. E.g.

>>> parse('11/12/2001')
>>> datetime.datetime(2001, 11, 12, 0, 0) # Nov 12
>>> parse('11/12/2001', dayfirst=True)
>>> datetime.datetime(2001, 12, 11, 0, 0) # Dec 11


Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách thực hiện 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 hàm datetime.strptime ()

  • Sử dụng hàm dateUtil.parser.parse ()

Phương pháp 1: Sử dụng hàm DateTime.strptime ()

Thuật toán (bước)

Sau đây là các thuật toán/các bước được tuân thủ để thực hiện nhiệm 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ờ).datetime(To work with dates and times) module.

  • 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 dưới dạng chuỗi và tạo một biến khác để lưu trữ nó.

  • Sử dụng các khối ngoại trừ thử để 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 thử được sử dụng để kiểm tra một số mã cho các lỗi, tức là mã bên trong khối thử sẽ thực thi nếu chương trình Không chứa 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 đó)try−except blocks for handling the exceptions(In Python, the Try and Except statements are used to handle these errors. The try block is used to check some code for errors, i.e. the code inside the try block will execute if the program contains no errors. The code within the except block, on the other hand, will be executed whenever the program encounters an error in the preceding try block)

  • Trong khối thử, hãy truyền định dạng chuỗi ngày và ngày đã cho làm đối số cho hàm strptime () (định dạng thời gian theo định dạng chuỗi vào một đối tượng thời gian ngày) của lớp DateTime của mô -đun DateTime và lưu kết quả trong một biến

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

  • Nếu 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 cạnh khối ngoại trừ, hãy in văn bản thích hợp nếu giá trị xảy ra.ValueError occurs.

Thí dụ

Chương trình sau đây trả về liệu ngày đã cho có hợp lệ hay không sử dụng hàm strptime () -

import datetime date_string = '2017-12-31' date_format = '%Y-%m-%d' try: dateObject = datetime.datetime.strptime(date_string, date_format) print(dateObject) except ValueError: print("Incorrect data format, should be YYYY-MM-DD")

Đầu ra

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

2017-12-31 00:00:00

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

Chỉ thịNghĩa
%mộtTên tuần viết tắt của địa phương.
%MỘTTên đầy đủ của địa điểm.
%bTên tháng viết tắt của Locale.
%BTên đầy đủ của địa điểm.
%cĐại diện ngày và thời gian thích hợp của địa phương.
%dNgày trong tháng dưới dạng số thập phân [01,31].
%HGiờ (đồng hồ 24 giờ) dưới dạng số thập phân [00,23].
%TÔIGiờ (đồng hồ 12 giờ) dưới dạng số thập phân [01,12].
%jNgày trong năm dưới dạng số thập phân [001.366].
%mTháng dưới dạng số thập phân [01,12].
%MPhút như một số thập phân [00,59].
%PĐịa điểm tương đương với AM hoặc PM.
%SThứ hai là một số thập phân [00,61].
%USố tuần của năm (Chủ nhật là ngày đầu tiên trong 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à vào tuần 0.
%wNgày trong tuần là một số thập phân [0 (Chủ nhật), 6].
%WSố tuần của năm (thứ Hai là ngày đầu tiên trong 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 ngày thứ Hai đầu tiên được coi là vào tuần 0.
%xĐại diện ngày thích hợp của địa phương.
%XĐại diện thời gian thích hợp của địa phương.
%yNăm không có thế kỷ như một số thập phân [00,99].
%YNăm với thế kỷ như một số thập phân.
%ZTên múi giờ (không có ký tự nếu không có múi giờ tồn tại).
%%Một ký tự "%" theo nghĩa đen

Phương pháp 2: Sử dụng hàm DateUtil.parser.parse ()

Trong phương pháp này, chúng tôi sử dụng một chức năng Inbuilt riêng biệt, DateUtil.parser, để 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 nhận một ngày.dateutil.parser, to check for validated format. This does not require the format to validate a date.

Thuật toán (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.parser from dateutil module.

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 ngoại trừ thử để xử lý các ngoại lệ. Bên trong khối thử, phân tích chuỗi ngày đã cho bằng hàm parse (). Ở đây nó in đúng nếu ngày nhất định là chính xác.try−except blocks for handling the exceptions. Inside the try block, parse the given date string using the parse() function. Here it prints true if the given date is correct.

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

Thí dụ

Chương trình sau đây trả về liệu ngày đã cho có hợp lệ hay không sử dụng hàm parse () -

from dateutil import parser date_string = '23-41-2021' print("Input Date:", date_string) try: print(bool(parser.parse(date_string))) except ValueError: print("Incorrect data format")

Đầu ra

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

Input Date: 23-41-2021
Incorrect data format

Sự kết luận

Chúng tôi đã học cách xác nhận 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 tôi cũng đã tìm hiểu về các chỉ thị khác mà chức năng Strptime () hỗ trợ.

Hướng dẫn how do you validate a timestamp in python? - làm cách nào để bạn xác nhận dấu thời gian trong python?

Cập nhật vào ngày 22 tháng 9 năm 2022 11:25:51

  • Câu hỏi và câu trả lời liên quan
  • Làm thế nào để thực hiện xác thực biểu mẫu cơ bản bằng JavaScript?
  • Xác thực định dạng ngày bằng C# Regex
  • Xác thực định dạng ngày bằng cách sử dụng Java Regex
  • Xác thực ngày bằng cách sử dụng biểu thức thông thường của Java
  • Xác thực mật khẩu trong Python
  • Làm thế nào chúng ta có thể làm toán ngày và thời gian trong Python?
  • Làm thế nào để chúng ta sử dụng biểu thức thông thường Python để phù hợp với chuỗi ngày?
  • Làm thế nào để kiểm tra xác thực minlength và maxlength của một thuộc tính trong C# bằng cách sử dụng xác thực trôi chảy?
  • Làm cách nào để nhận được một ngày ISO 8601 ở định dạng chuỗi trong Python?
  • Làm thế nào để bạn chuyển đổi một ngày JavaScript sang UTC?
  • Làm thế nào để bạn có được một danh sách thư mục được sắp xếp theo ngày sáng tạo trong Python?
  • Làm thế nào để so sánh các chuỗi ngày trong Python?
  • Làm thế nào để bạn tạo một đối tượng ngày từ một ngày trong Swift Xcode?
  • Làm cách nào để tính toán ngày sáu tháng kể từ ngày hiện tại bằng mô -đun Python DateTime?
  • Làm thế nào để chuyển đổi ngày thành DateTime trong Python?

Làm cách nào để xác nhận một ngày trong Python?

Thuật toán (bước)..
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 ngoại trừ thử để xử lý các ngoại lệ. Bên trong khối thử, phân tích chuỗi ngày đã cho bằng hàm parse (). ....
Nếu ngày không đúng/không hợp lệ thì mã ngoại trừ sẽ được thực thi ..

Làm thế nào để tôi có được dấu thời gian từ một ngày ở Python?

Bạn có thể chỉ cần sử dụng chức năng FromTimestamp từ mô -đun DateTime để nhận ngày từ dấu thời gian UNIX.Hàm này lấy dấu thời gian làm đầu vào và trả về đối tượng DateTime tương ứng cho dấu thời gian.use the fromtimestamp function from the DateTime module to get a date from a UNIX timestamp. This function takes the timestamp as input and returns the corresponding DateTime object to timestamp.

Làm cách nào để xác nhận định dạng ngày trong một chuỗi?

Kiểm tra xem một chuỗi là một ngày hợp lệ trong Java..
Tổng quan.Trong hướng dẫn này, chúng tôi sẽ thảo luận về các cách khác nhau để kiểm tra xem một chuỗi có chứa một ngày hợp lệ trong Java không.....
Tổng quan xác thực ngày.....
Xác thực bằng cách sử dụng DateFormat.....
Xác thực bằng cách sử dụng LocalDate.....
Xác thực bằng cách sử dụng DatetimeFormatter.....
Xác thực bằng trình xác nhận Apache Commons.....
Conclusion..

Làm thế nào để bạn xác nhận một ngày?

Trình xác nhận ngày yêu cầu ngày, tháng và năm.Ví dụ, nếu bạn đang tìm kiếm Trình xác thực giờ và thời gian, HH: MM, bạn nên sử dụng Trình xác nhận regexp.Dưới đây là một số ví dụ về các định dạng có thể: yyyy/dd/mm.. If you are looking for hour and time validator, HH:mm , for example, you should use the regexp validator. Below are some example of possible formats: YYYY/DD/MM.