Computer >> Máy Tính >  >> Lập trình >> Python

Làm việc với Ngày và Giờ bằng Python

Thao tác ngày và giờ là một phần không thể thiếu của bất kỳ ngôn ngữ lập trình nào. Python có thư viện tiêu chuẩn chứa mô-đun datetime có gần như tất cả các tính năng và chức năng để thực hiện các phép tính liên quan đến ngày và giờ. Trong các ví dụ dưới đây, chúng ta sẽ thấy các khía cạnh khác nhau của ngày giờ được triển khai như thế nào.

Xử lý ngày hiện tại

Mô-đun datetime có một lớp tên là datetime. Chúng ta có thể nhập lớp này và sử dụng các chức năng của nó để tạo một đối tượng datetime. Sau đó, áp dụng các kỹ thuật định dạng khác nhau để hiển thị các giá trị ngày và giờ. Vì vậy, đầu tiên chúng ta tạo một đối tượng datetime được khởi tạo bằng hàm now (). Đối tượng này chứa tất cả các phần của ngày và giờ hiện tại và sau đó chúng tôi thao tác các phần khác nhau của nó.

Ví dụ

 from datetime import datetimedt_time_obj =datetime.now () # In dấu thời gian của ngày hiện tại (dt_time_obj) # Tìm đối tượng classprint ('Lớp đối tượng:-', type (dt_time_obj)) 

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

 2020-01-22 09:33:02.693863 Lớp đối tượng:- 

Ngày giờ và chuỗi

Chúng ta có thể chuyển đổi chuỗi thành datetime và datetime thành chuỗi bằng cách sử dụng các phương thức strptime và strftime. Việc chuyển đổi này là một điều cần thiết khi chúng tôi xử lý các nguồn dữ liệu khác nhau trong đó dữ liệu có thể không được trình bày ở định dạng chính xác theo yêu cầu của python để được gọi là ngày giờ. Trong ví dụ dưới đây, chúng tôi lấy một chuỗi và chuyển đổi nó thành ngày giờ. Và cũng thực hiện hành động ngược lại.

Ví dụ

 from datetime import datetimedt_string ='2020-1-30 2-52-59' # Tạo đối tượng ngày từ Stringdate_val =datetime.strptime (dt_string, "% Y-% m-% d% H-% M-% S ") print (date_val) print ('Class:', type (date_val)) print (" \ n ") # Tạo Chuỗi từ Date Objectdate_val_str =datetime.strftime (date_val,"% Y-% m-% d% H- % M-% S ") print (date_val_str) print ('Class:', type (date_val_str)) 

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

 2020-01-30 02:52:59 Lớp:2020-01-30 02-52-59 Lớp:

Trích xuất các phần của giá trị ngày giờ

Chúng ta có thể trích xuất các phần khác nhau của ngày bằng cách sử dụng các lệnh và phương thức strftime. Dưới đây là danh sách một số ví dụ về các chỉ thị khác nhau và mục đích của chúng. Để có danh sách đầy đủ tất cả các lệnh, vui lòng tham khảo tài liệu python tại đây.

Chỉ thị
Cách sử dụng
% A
Ngày trong tuần
% B
tháng
% M
phút
% Y
Năm
% d
Ngày trong tháng

Ví dụ dưới đây cho thấy cách sử dụng các lệnh.

Ví dụ

 from datetime import datetimedt_string ='2020-1-30 2-52-59' # Tạo đối tượng ngày từ Stringdate_val =datetime.strptime (dt_string, "% Y-% m-% d% H-% M-% S ") # Quay lại năm và tên của ngày trong tuần, tháng, Ngày trong tháng:print (date_val.year) print (date_val.strftime ("% d ")) print (date_val.strftime ("% B ")) print (date_val .strftime ("% A"), "\ n") 

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

 202030JanuaryThursday 

Ngày giờ Số học

Tiếp theo, chúng ta xem các ví dụ về các phép tính liên quan đến ngày và giờ. Chúng ta có thể cộng và trừ ngày, giờ, v.v. từ một ngày nhất định. Ngoài ra, chúng ta có thể lấy ngày làm đầu vào và áp dụng các thao tác khác nhau trên chúng.

Sử dụng TimeDelta

Ví dụ

 #import datetimefrom datetime import * # Tìm hiện tại timedt_time_today =datetime.now () print ("Ngày hôm nay:", str (dt_time_today)) # thêm 5 ngày vào currentnew_date =dt_time_today + timedelta (days =5) print (' Sau 5 ngày:', new_date) #Remove 2 tuần từ datetwo_weeks_back hiện tại =dt_time_today - timedelta (week =2) print (' Hai tuần trước:', two_weeks_back) print (' two_weeks_back object type:', type (two_weeks_back)) 

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

 Hôm nay ngày:2020-01-29 12:38:03.290795 Sau 5 ngày:2020-02-03 12:38:03.290795Hai tuần trước:2020-01-15 12:38:03.290795two_weeks_back loại đối tượng: 

Sử dụng toán tử

Chúng ta có thể áp dụng một số toán tử giữa hai ngày. Sự khác biệt về ngày tháng có thể được tìm ra bằng cách sử dụng toán tử trừ và các ngày có thể được so sánh bằng cách sử dụng toán tử logic.

Ví dụ

 from datetime import datetime # Cho Datesdate1 =datetime (2018,5, 12, 8, 11, 53) date2 =datetime (2017, 6, 16, 12, 43, 27) # Sự khác biệt giữa hai datedate_diff =date1-date2print ("Sự khác biệt:", date_diff) # So sánh hai dấu ngày tháng (date1  

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

 Chênh lệch:329 ngày, 19:28:26False