Hướng dẫn python convert string to datetime and compare - python chuyển đổi chuỗi thành datetime và so sánh

Như S1R đã chỉ ra, phương pháp strptime là những gì bạn muốn. Bạn cũng cần chỉ định năm, vì nó không được bao gồm trong chuỗi ngày của bạn:

>>> import datetime
>>> s = "Apr 18 17:19:42"
>>> t = datetime.datetime.strptime[s, "%b %d %H:%M:%S"]
>>> t
datetime.datetime[1900, 4, 18, 17, 19, 42]
>>> t = t.replace[year = 2012]
>>> n = datetime.datetime.now[]
>>> n
datetime.datetime[2012, 4, 20, 10, 21, 42, 165657]
>>> d = n-t
>>> d.total_seconds[]

Python không có date là loại dữ liệu tích hợp. Tuy nhiên, mô -đun

dateobj = date[year, month, day]
timeobj = time[hour, minute, second]
datetimeobj = datetime[year, month, day, hour, minute, second]
0 trong thư viện tiêu chuẩn xác định các lớp date,
dateobj = date[year, month, day]
timeobj = time[hour, minute, second]
datetimeobj = datetime[year, month, day, hour, minute, second]
2 và
dateobj = date[year, month, day]
timeobj = time[hour, minute, second]
datetimeobj = datetime[year, month, day, hour, minute, second]
0 bằng cách sử dụng xử lý ngày và thời gian có thể được thực hiện. Đối tượng của các lớp này được tạo bằng cách cung cấp các đối số số nguyên như sau:

dateobj = date[year, month, day]
timeobj = time[hour, minute, second]
datetimeobj = datetime[year, month, day, hour, minute, second]

Do đó, chúng ta sẽ có thể phân tích biểu diễn chuỗi của ngày/thời gian và có được các đối số cho các hàm tạo trên. Ví dụ: biểu diễn chuỗi mặc định của ngày là

dateobj = date[year, month, day]
timeobj = time[hour, minute, second]
datetimeobj = datetime[year, month, day, hour, minute, second]
4, về thời gian
dateobj = date[year, month, day]
timeobj = time[hour, minute, second]
datetimeobj = datetime[year, month, day, hour, minute, second]
5 và
dateobj = date[year, month, day]
timeobj = time[hour, minute, second]
datetimeobj = datetime[year, month, day, hour, minute, second]
6 dành cho DateTime.

Ví dụ,

dateobj = date[year, month, day]
timeobj = time[hour, minute, second]
datetimeobj = datetime[year, month, day, hour, minute, second]
7 là một chuỗi đại diện cho ngày và thời gian. Chúng ta có thể tách các thuộc tính ngày và thời gian theo cách thủ công và xây dựng đối tượng
dateobj = date[year, month, day]
timeobj = time[hour, minute, second]
datetimeobj = datetime[year, month, day, hour, minute, second]
0 như sau:

>>> strdate="2020-10-16 12:35:20" 
>>> dt_tuple=tuple[[int[x] for x in strdate[:10].split['-']]]+tuple[[int[x] for x in strdate[11:].split[':']]]
>>> dt_tuple
[2020, 10, 16, 12, 35, 20]

Trong chuỗi DateTime trên, 10 ký tự đầu tiên có các giá trị một năm, tháng và ngày được phân tách bởi '-' và 8 ký tự còn lại có các giá trị, phút và giây được phân tách bằng ':'. Bây giờ bạn có thể giải nén bộ tuple trên cho hàm tạo DateTime bằng cách nhập mô -đun DateTime, như được hiển thị bên dưới.

>>> import datetime
>>> datetimeobj=datetime.datetime[*dt_tuple]
>>> datetimeobj
datetime.datetime[2020, 10, 16, 12, 35, 20]

Tuy nhiên, biểu diễn chuỗi của ngày và thời gian có thể thay đổi theo lựa chọn của người dùng. Ví dụ: người ta có thể sử dụng định dạng

dateobj = date[year, month, day]
timeobj = time[hour, minute, second]
datetimeobj = datetime[year, month, day, hour, minute, second]
9 hoặc ai đó có thể muốn hiển thị tháng từng tên, chẳng hạn như
>>> strdate="2020-10-16 12:35:20" 
>>> dt_tuple=tuple[[int[x] for x in strdate[:10].split['-']]]+tuple[[int[x] for x in strdate[11:].split[':']]]
>>> dt_tuple
[2020, 10, 16, 12, 35, 20]
0.

Đây là nơi phương pháp

>>> strdate="2020-10-16 12:35:20" 
>>> dt_tuple=tuple[[int[x] for x in strdate[:10].split['-']]]+tuple[[int[x] for x in strdate[11:].split[':']]]
>>> dt_tuple
[2020, 10, 16, 12, 35, 20]
1 của lớp
dateobj = date[year, month, day]
timeobj = time[hour, minute, second]
datetimeobj = datetime[year, month, day, hour, minute, second]
0 chứng tỏ hữu ích.

datetime.datetime.strptime[string, format]

Tham số đầu tiên là biểu diễn chuỗi và thứ hai sử dụng mã được xác định trước để phân tích các giá trị ngày và thời gian từ một chuỗi. Ví dụ: chuỗi ngày

>>> strdate="2020-10-16 12:35:20" 
>>> dt_tuple=tuple[[int[x] for x in strdate[:10].split['-']]]+tuple[[int[x] for x in strdate[11:].split[':']]]
>>> dt_tuple
[2020, 10, 16, 12, 35, 20]
3 được phân tích cú pháp bởi hàm này nếu định dạng được đưa ra là
>>> strdate="2020-10-16 12:35:20" 
>>> dt_tuple=tuple[[int[x] for x in strdate[:10].split['-']]]+tuple[[int[x] for x in strdate[11:].split[':']]]
>>> dt_tuple
[2020, 10, 16, 12, 35, 20]
4. Ở đây,
>>> strdate="2020-10-16 12:35:20" 
>>> dt_tuple=tuple[[int[x] for x in strdate[:10].split['-']]]+tuple[[int[x] for x in strdate[11:].split[':']]]
>>> dt_tuple
[2020, 10, 16, 12, 35, 20]
5 sử dụng bốn ký tự đầu tiên làm đại diện bốn chữ số của một năm, hai ký tự giữa một tháng và hai ký tự cuối cùng cho một ngày. Mô -đun xác định các mã duy nhất sau đây để định dạng chuỗi DateTime theo nghĩa được xác định trước của chúng.

Mã số Sự mô tả
%mộtNgày trong tuần, phiên bản ngắn
%MỘTNgày trong tuần, phiên bản đầy đủ
%dNgày của tháng 01-31
%bTên tháng, phiên bản ngắn
%BTên tháng, phiên bản đầy đủ
%mTháng là số 01-12
%yNăm, phiên bản ngắn, không có thế kỷ
%YNăm, phiên bản đầy đủ
%HGiờ 00-23
%TÔIGiờ 00-12
%PAM/PM
%MPhút 00-59
%S00-59 thứ hai

Chúng ta hãy sử dụng phương thức

>>> strdate="2020-10-16 12:35:20" 
>>> dt_tuple=tuple[[int[x] for x in strdate[:10].split['-']]]+tuple[[int[x] for x in strdate[11:].split[':']]]
>>> dt_tuple
[2020, 10, 16, 12, 35, 20]
1 để chuyển đổi một chuỗi đã cho thành đối tượng DateTime, như được hiển thị bên dưới:

>>> strdate="2020-10-16 12:35:20" 
>>> datetimeobj=datetime.datetime.strptime[strdate, "%Y-%m-%d %H:%M:%S"]
>>> datetimeobj
datetime.datetime[2020, 10, 16, 12, 35, 20]

Nếu chuỗi ngày được thay đổi thành

>>> strdate="2020-10-16 12:35:20" 
>>> dt_tuple=tuple[[int[x] for x in strdate[:10].split['-']]]+tuple[[int[x] for x in strdate[11:].split[':']]]
>>> dt_tuple
[2020, 10, 16, 12, 35, 20]
7, định dạng phải được đặt thành
>>> strdate="2020-10-16 12:35:20" 
>>> dt_tuple=tuple[[int[x] for x in strdate[:10].split['-']]]+tuple[[int[x] for x in strdate[11:].split[':']]]
>>> dt_tuple
[2020, 10, 16, 12, 35, 20]
8.

>>> strdate="16-10-2020 12:35:20" 
>>> datetimeobj=datetime.datetime.strptime[strdate,"%d-%m-%Y %H:%M:%S"]
>>> datetimeobj
datetime.datetime[2020, 10, 16, 12, 35, 20]

Như một ví dụ cuối cùng, chúng ta hãy đặt chuỗi ngày là

>>> strdate="2020-10-16 12:35:20" 
>>> dt_tuple=tuple[[int[x] for x in strdate[:10].split['-']]]+tuple[[int[x] for x in strdate[11:].split[':']]]
>>> dt_tuple
[2020, 10, 16, 12, 35, 20]
9

>>> strdate="16-Oct-20" 
>>> datetimeobj=datetime.datetime.strptime[strdate,"%d-%b-%y"]
>>> datetimeobj
datetime.datetime[2020, 10, 16, 0, 0]

Lưu ý rằng các tham số thời gian xuất hiện là 0 vì chúng không được bao gồm trong chuỗi.

Làm cách nào để chuyển đổi một chuỗi thành DateTime trong Python?

Chúng ta có thể chuyển đổi một chuỗi thành DateTime bằng hàm strptime [].Hàm này có sẵn trong các mô -đun DateTime và Time để phân tích một chuỗi vào các đối tượng DateTime và thời gian tương ứng.using strptime[] function. This function is available in datetime and time modules to parse a string to datetime and time objects respectively.

Tôi có thể so sánh chuỗi ngày Python không?

So sánh ngày khá dễ dàng trong Python.Ngày có thể dễ dàng so sánh bằng cách sử dụng các toán tử so sánh [như, =,! = ETC.].Hãy xem cách so sánh ngày với sự trợ giúp của mô -đun DateTime bằng Python.Dates can be easily compared using comparison operators [like , =, != etc.]. Let's see how to compare dates with the help of datetime module using Python.

Làm thế nào để bạn so sánh thời gian ngày và chuỗi?

Bạn có thể sử dụng phương thức DateTime.parse [] [^] để chuyển đổi chuỗi thành giá trị DateTime và sau đó, so sánh khá đơn giản.use DateTime. Parse[][^] method to convert the string to a DateTime value and then after that, the compare is pretty straightforward.

Làm cách nào để so sánh hai dấu thời gian trong Python?

So sánh giữa các đối tượng dấu thời gian của gấu trúc được thực hiện bằng cách sử dụng các toán tử so sánh đơn giản:>,using simple comparison operators: >, =. The difference can be calculated using a simple '–' operator. Given time can be converted to pandas timestamp using pandas. Timestamp[] method.

Bài Viết Liên Quan

Chủ Đề