Ngày tháng trong Python không phải là kiểu dữ liệu của riêng nó, nhưng chúng ta có thể nhập một mô-đun có tên
# my_date2 = "01-07-2022"8 để làm việc với ngày tháng dưới dạng đối tượng ngày tháng
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Ví dụ
Nhập mô-đun datetime và hiển thị ngày hiện tại
nhập ngày giờ
x = ngày giờ. ngày giờ. bây giờ[]
in[x]
Xuất ngày
Khi chúng tôi thực thi mã từ ví dụ trên, kết quả sẽ là
Ngày chứa năm, tháng, ngày, giờ, phút, giây và micro giây
Mô-đun
# my_date2 = "01-07-2022"8 có nhiều phương thức để trả về thông tin về đối tượng ngày tháng
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Dưới đây là một vài ví dụ, bạn sẽ tìm hiểu thêm về chúng ở phần sau của chương này
Ví dụ
Trả về năm và tên của ngày trong tuần
nhập ngày giờ
x = ngày giờ. ngày giờ. hiện nay[]
in[x. năm]
in[x. strftime["%A"]]
Tạo đối tượng ngày
Để tạo ngày, chúng ta có thể sử dụng lớp
# my_date2 = "01-07-2022"0 [hàm tạo] của mô-đun
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
# my_date2 = "01-07-2022"8
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Lớp
# my_date2 = "01-07-2022"0 yêu cầu ba tham số để tạo ngày. năm tháng ngày
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Ví dụ
Tạo một đối tượng ngày
nhập ngày giờ
x = ngày giờ. ngày giờ[2020, 5, 17]
in[x]
Tự mình thử »Lớp
# my_date2 = "01-07-2022"0 cũng nhận các tham số về thời gian và múi giờ [giờ, phút, giây, micro giây, tzone], nhưng chúng là tùy chọn và có giá trị mặc định là
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
# my_date2 = "01-07-2022"4, [
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
# my_date2 = "01-07-2022"5 cho múi giờ]
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Phương thức strftime[]
Đối tượng
# my_date2 = "01-07-2022"8 có phương thức định dạng đối tượng ngày tháng thành các chuỗi có thể đọc được
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Phương thức này được gọi là
# my_date2 = "01-07-2022"7 và nhận một tham số,
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
# my_date2 = "01-07-2022"80, để chỉ định định dạng của chuỗi được trả về
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Bạn có gặp khó khăn khi xử lý các đối tượng DateTime không? . Tôi luôn cần thực hiện nhiều tìm kiếm để tìm ra các phương pháp phù hợp cho trường hợp sử dụng của mình. Sau đó, tôi quyết định viết bài này, để làm tư liệu cho bạn đọc thân yêu và bản thân
Lý lịchKhi tôi đang phát triển công cụ để tự động hóa việc chuẩn bị báo cáo hoặc kết hợp tệp Excel, tôi sẽ phải xác định được thông tin từ tên tệp hoặc thư mục. Thông thường các tệp do hệ thống tạo ra hoặc các báo cáo định kỳ sẽ được đặt tên theo một mẫu cố định và sẽ được lưu trữ trong cùng một thư mục
Tên tệp thường là sự kết hợp của tên báo cáo, ngày hoặc kỳ báo cáo và phần mở rộng tệp—ví dụ: báo cáo định kỳ có tên “Báo cáo tiêu thụ điện 2022_Q4_WW43. xlsx” và báo cáo hàng ngày có tên “Báo cáo yêu cầu công cụ 20221021. csv”. Để truy xuất các tệp chính xác, chúng tôi sẽ cần tính ngày hoặc khoảng thời gian trong tên tệp dựa trên thời gian công cụ tự động hóa báo cáo đang chạy
Với điều đó, bài viết này sẽ được cấu trúc như dưới đây
Bắt đầu nào
Phân tích cú pháp DateTime có nghĩa là chúng ta chuyển đổi một đối tượng chuỗi chứa ngày thành một đối tượng DateTime. Ví dụ: khi chúng tôi nhận được ngày từ báo cáo “Báo cáo yêu cầu công cụ 20221021. csv” bằng Biểu thức chính quy hoặc bất kỳ phương thức nào khác, ngày “20221021” sẽ là một biến chuỗi
Sau khi chúng tôi phân tích cú pháp, nó sẽ trở thành một đối tượng DateTime và sẽ được ghi ở định dạng ISO [YYYY-MM-DD], 2022–10–21. Sau đó, chúng tôi có thể định dạng nó thành một định dạng cụ thể, chẳng hạn như ngày 21 tháng 10 năm 2022. Lưu ý rằng đối tượng DateTime sẽ trở thành đối tượng chuỗi sau khi chúng ta định dạng nó
Gây nhầm lẫn?
Bạn sẽ có một bức tranh rõ ràng hơn từ các ví dụ dưới đây
1. Phân tích cú pháp và định dạng DateTimePhân tích ngày giờ
Có hai phương pháp từ thư viện DateTime để phân tích ngày
# my_date2 = "01-07-2022"
2
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00# my_date2 = "01-07-2022"
3
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Hãy xem sự khác biệt giữa chúng là gì
import datetime as dtmy_date1 = "2022-07-01"
print[my_date1]
print[type[my_date1]]my_date2 = "01-07-2022"
print[my_date2]
print[type[my_date2]]my_date3 = "01July2022"
print[my_date3]
print[type[my_date3]]
Được rồi, vì vậy tôi đã tạo 3 ngày khác nhau làm biến, hiện tại chúng là đối tượng chuỗi. Hãy phân tích chúng thành đối tượng DateTime ngay bây giờ
my_date1a = dt.datetime.fromisoformat[my_date1]
print[type[my_date1a]]my_date3a = dt.datetime.fromisoformat[my_date3]
print[type[my_date3a]]
Hình ảnh của tác giả
Đối với phương thức đầu tiên,
# my_date2 = "01-07-2022"2, giống như tên phương thức, nó chỉ có thể phân tích cú pháp ngày ở định dạng ISO, YYYY-MM-DD, như trong biến có tên
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
# my_date2 = "01-07-2022"5. Do đó, khi chúng tôi cố gắng sử dụng phương thức này cho các định dạng DateTime khác như trong
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
# my_date2 = "01-07-2022"6, nó sẽ trả về Lỗi Giá trị. Biến
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
# my_date2 = "01-07-2022"7 là đối tượng DateTime mà chúng ta nhận được bằng cách phân tích cú pháp biến
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
# my_date2 = "01-07-2022"5
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Dưới đây là một ví dụ về phân tích ngày tháng bằng phương pháp
# my_date2 = "01-07-2022"3. Đối với phương pháp này, chúng tôi phải chỉ định mã định dạng dựa trên định dạng ngày để phân tích ngày. Bạn có thể đọc thêm về mã định dạng tại
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
# my_date2 = "01-07-2022"
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Hãy xem một ví dụ khác với định dạng ngày khác
# my_date2 = "01-07-2022"1
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Phân tích ngày bằng phương pháp
# my_date2 = "01-07-2022"10 bằng cách thay thế ngày, tháng và năm bằng các mã định dạng tương ứng. Như trong ví dụ trên, %d cho ngày, %m cho chữ số tháng, %B cho tên đầy đủ của tháng và %Y cho năm có thế kỷ
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Chà, bây giờ nó có thể trông rất phức tạp nếu bạn chưa quen với điều này, nhưng tôi đảm bảo với bạn rằng bạn sẽ rất tuyệt khi bạn đã quen với mã định dạng. Hãy nhớ rằng, bạn luôn có thể tham khảo. 😉
Định dạng ngày giờ
Sau khi chúng tôi phân tích đối tượng chuỗi thành đối tượng DateTime, nó sẽ được hiển thị ở định dạng ISO. Nếu bạn muốn nó ở dạng khác, chúng tôi phải sử dụng phương pháp
# my_date2 = "01-07-2022"11 để định dạng ngày
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
# my_date2 = "01-07-2022"4
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Xin lưu ý rằng sau khi chúng tôi định dạng ngày, nó sẽ trở thành một chuỗi
Sau khi chúng tôi phân tích chuỗi thành đối tượng DateTime, chúng tôi có thể lấy thông tin từ nó
2. Trích xuất thông tin Năm / Tháng / NgàyGhi chú. Ví dụ dưới đây sử dụng biến từ ví dụ trong phần đầu tiên
Để có được thông tin năm, tháng và ngày, chúng ta chỉ cần sử dụng thuộc tính tương ứng bên dưới từ đối tượng DateTime
# my_date2 = "01-07-2022"
12
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00# my_date2 = "01-07-2022"
13
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00# my_date2 = "01-07-2022"
14
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
# my_date2 = "01-07-2022"8
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Đơn giản phải không?
Tuy nhiên, chúng tôi không thể trích xuất thông tin trên từ một ngày được định dạng
# my_date2 = "01-07-2022"9
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Hình ảnh của tác giả
Nó sẽ trả về Lỗi thuộc tính. Điều này là do khi chúng tôi định dạng ngày thành các định dạng khác, nó sẽ lại trở thành một đối tượng chuỗi. Chúng tôi chỉ có thể trả về các thuộc tính DateTime từ một đối tượng DateTime
import datetime as dtmy_date1 = "2022-07-01"0
print[my_date1]
print[type[my_date1]]my_date2 = "01-07-2022"
print[my_date2]
print[type[my_date2]]my_date3 = "01July2022"
print[my_date3]
print[type[my_date3]]
Xin lưu ý rằng tích của strftime[] là một đối tượng chuỗi, trong khi tích của strptime[] là một đối tượng DateTime
3. Tính Tuần Thế giới từ Ngày
Ghi chú. Trong phần này, chúng ta sẽ sử dụng các biến mới cho ví dụ
Đầu tiên, tôi tạo hai đối tượng chuỗi mới với các ngày khác nhau và sau đó phân tích chúng thành các đối tượng DateTime
import datetime as dtmy_date1 = "2022-07-01"1
print[my_date1]
print[type[my_date1]]my_date2 = "01-07-2022"
print[my_date2]
print[type[my_date2]]my_date3 = "01July2022"
print[my_date3]
print[type[my_date3]]
Chúng ta sẽ sử dụng phương thức
# my_date2 = "01-07-2022"15 để lấy thông tin tuần thế giới từ đối tượng DateTime. Điều này là do đối tượng DateTime không có thuộc tính world week
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
import datetime as dtmy_date1 = "2022-07-01"3
print[my_date1]
print[type[my_date1]]my_date2 = "01-07-2022"
print[my_date2]
print[type[my_date2]]my_date3 = "01July2022"
print[my_date3]
print[type[my_date3]]
Phương thức
# my_date2 = "01-07-2022"15 sẽ trả về một bộ chứa năm ISO, số tuần và ngày trong tuần. Ngày trong tuần sẽ được trả về dưới dạng số. Chúng ta có thể trả về giá trị với chỉ mục tương ứng
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
my_date1a = dt.datetime.fromisoformat[my_date1]0
print[type[my_date1a]]my_date3a = dt.datetime.fromisoformat[my_date3]
print[type[my_date3a]]
Đó là cách chúng tôi nhận được số tuần, cũng như năm và ngày trong tuần
4. Tính ngày trong tuần từ ngàyGhi chú. Ví dụ dưới đây sử dụng biến từ ví dụ ở phần 3
Có nhiều hơn một phương thức để trả về thông tin ngày trong tuần từ một ngày. Một trong những phương pháp là thông qua
# my_date2 = "01-07-2022"15 như đã trình bày trong phần trước. Một phương pháp khác là sử dụng phương pháp
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
# my_date2 = "01-07-2022"18 được hiển thị bên dưới
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
my_date1a = dt.datetime.fromisoformat[my_date1]1
print[type[my_date1a]]my_date3a = dt.datetime.fromisoformat[my_date3]
print[type[my_date3a]]
Chà, 2022–07–01 là Thứ Sáu. Phương thức
# my_date2 = "01-07-2022"15 không tuân theo quy tắc chỉ mục python. Vì vậy, trên thực tế, cả hai phương thức
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
# my_date2 = "01-07-2022"15 và
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
# my_date2 = "01-07-2022"18 đều bắt đầu đếm vào Thứ Hai, nhưng
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
# my_date2 = "01-07-2022"15 sử dụng chỉ mục bắt đầu từ 1, trong khi ngày trong tuần[] là một hàm python bắt đầu từ 0. Hai phương thức được đề cập trả về ngày trong tuần dưới dạng số. Có một phương pháp nữa để làm như vậy, bạn có đoán được không 🤔?
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Đó là phương pháp
# my_date2 = "01-07-2022"43
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Chúng ta có thể lấy tên của ngày trong tuần bằng cách định dạng ngày bằng mã định dạng tương ứng
my_date1a = dt.datetime.fromisoformat[my_date1]2
print[type[my_date1a]]my_date3a = dt.datetime.fromisoformat[my_date3]
print[type[my_date3a]]
Chúng ta có thể trả về tên viết tắt của ngày trong tuần bằng cách định dạng chúng bằng cách sử dụng mã định dạng “%a” như trong ví dụ trên hoặc trả về tên đầy đủ của ngày trong tuần bằng cách sử dụng mã định dạng “%A” như trong ví dụ bên dưới
my_date1a = dt.datetime.fromisoformat[my_date1]3
print[type[my_date1a]]my_date3a = dt.datetime.fromisoformat[my_date3]
print[type[my_date3a]]
Chúng tôi cũng có thể trả lại ngày trong tuần dưới dạng số
my_date1a = dt.datetime.fromisoformat[my_date1]4
print[type[my_date1a]]my_date3a = dt.datetime.fromisoformat[my_date3]
print[type[my_date3a]]
Một sự thật thú vị, khi bạn sử dụng phương pháp
# my_date2 = "01-07-2022"43, việc đếm bắt đầu vào Chủ nhật và chỉ số bắt đầu từ 0, như thể hiện trong
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Để hiểu rõ hơn, tôi đã tổng hợp bảng so sánh bên dưới để chỉ ra sự khác biệt giữa một số phương thức trả về ngày trong tuần dưới dạng số từ ngày mà tôi đã trình bày ở trên
Sự khác biệt giữa các phương thức để trả về ngày trong tuần dưới dạng số từ ngày. Hình ảnh của tác giả
5. Chuyển đổi đối tượng DateTime thành Thời gian
Ghi chú. Trong phần này, chúng ta sẽ sử dụng các biến mới cho ví dụ
Chúng ta đã xem qua các phương thức và thuộc tính để trả về năm, tháng, ngày, số tuần thế giới và ngày trong tuần. Nếu bạn còn nhớ ví dụ về tên báo cáo mà tôi đã đưa ra ở đầu bài viết này, “Báo cáo tiêu thụ điện 2022_Q4_WW43. xlsx”, vẫn còn một thông tin chúng tôi chưa lấy được, đó là quý
Để có được phần tư từ ngày, chúng tôi phải sử dụng thư viện
# my_date2 = "01-07-2022"45 cùng với thư viện DateTime
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
my_date1a = dt.datetime.fromisoformat[my_date1]5
print[type[my_date1a]]my_date3a = dt.datetime.fromisoformat[my_date3]
print[type[my_date3a]]
Đầu tiên, chúng tôi tạo một ngày dưới dạng một đối tượng chuỗi và sau đó chuyển đổi nó thành dấu thời gian. Sau đó, chúng ta có thể chuyển đổi dấu thời gian thành một khoảng thời gian
my_date1a = dt.datetime.fromisoformat[my_date1]6
print[type[my_date1a]]my_date3a = dt.datetime.fromisoformat[my_date3]
print[type[my_date3a]]
Nó khá đơn giản, phải không?
Theo tài liệu chính thức của gấu trúc, chỉ có 4 loại đầu ra cho phương pháp
# my_date2 = "01-07-2022"46. Trong các phần trước, chúng tôi nhận được năm, tháng và tuần riêng biệt. Sau đó, phương thức này trả về khoảng thời gian cụ thể của ngày thay vì. Ví dụ: Quý 4 năm 2022 là quý 4 năm 2022
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Cần thêm một bước nữa để chỉ truy xuất “Q4” thay vì “2022Q4”. Biến
# my_date2 = "01-07-2022"47 bây giờ là một đối tượng thời gian. Vì vậy, chúng ta cần chuyển đổi nó thành một đối tượng chuỗi và sau đó trả về hai chuỗi cuối cùng để lấy “Q4”
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
my_date1a = dt.datetime.fromisoformat[my_date1]7
print[type[my_date1a]]my_date3a = dt.datetime.fromisoformat[my_date3]
print[type[my_date3a]]
Ngoài ra, chúng ta có thể định nghĩa hàm python để chỉ ra quý cho mỗi tháng. Phương pháp này cũng có thể áp dụng khi đơn vị bạn có phương pháp tính năm tài chính riêng. Ví dụ, quý đầu tiên có thể rơi vào tháng 11, tháng 12 và tháng 1
my_date1a = dt.datetime.fromisoformat[my_date1]8
print[type[my_date1a]]my_date3a = dt.datetime.fromisoformat[my_date3]
print[type[my_date3a]]
Phần trên cho thấy cách trả lại quý khi tổ chức của bạn không tuân theo định nghĩa quý tiêu chuẩn. Bạn có thể sửa đổi điều kiện theo định nghĩa quý của tổ chức của bạn
6. Tính khoảng thời gian ngày thángGhi chú. Trong phần này, chúng ta sẽ sử dụng các biến mới cho ví dụ
Có hai kiểu tính toán cho khoảng thời gian DateTime
- Tính khoảng thời gian giữa hai ngày
- Cộng/trừ một khoảng thời gian cho đến ngày
Hãy xem từng người một
Trước đó, hãy tạo một số ngày làm ví dụ
my_date1a = dt.datetime.fromisoformat[my_date1]9
print[type[my_date1a]]my_date3a = dt.datetime.fromisoformat[my_date3]
print[type[my_date3a]]
Tính khoảng thời gian giữa hai ngày
Thật đơn giản để tính khoảng thời gian giữa hai ngày. Chúng ta chỉ cần trừ đi một ngày từ một ngày khác
# my_date2 = "01-07-2022"0
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Đầu ra sẽ là một timedelta, đề cập đến sự khác biệt giữa hai đối tượng DateTime
Cộng/trừ một khoảng thời gian cho đến ngày
Một ví dụ khác là cộng hoặc trừ một khoảng thời gian cho đến ngày
# my_date2 = "01-07-2022"1
my_date2a = dt.datetime.strptime[my_date2, "%d-%m-%Y"]
print[type[my_date2a]]
print[my_date2a]# Output:
#
# 2022-07-03 00:00:00
Chúng tôi sẽ sử dụng cho hoạt động này. Lớp này cho phép chúng ta cộng/trừ ngày, giây hoặc micro giây vào/từ các ngày
Phần kết luậnTóm lại, các phương pháp phân tích cú pháp đối tượng chuỗi thành đối tượng DateTime và định dạng đối tượng DateTime thành một định dạng cụ thể đã được trình bày. Sau đó, các cách để có được năm, tháng, ngày, tuần thế giới và cả ngày trong tuần từ ngày được thảo luận
Trình bày cách chuyển đổi một đối tượng DateTime thành một khoảng thời gian như năm, tháng trong năm và cả quý trong năm. Đối với các tổ chức có phương pháp tính toán năm tài chính của họ, câu lệnh điều kiện có thể được sử dụng để trả về đúng quý
Cuối cùng, giải thích về hai kiểu tính toán cho khoảng Ngày giờ, tính toán khoảng thời gian giữa hai ngày và cộng/trừ một khoảng thời gian cho đến ngày.
Với tất cả các phương pháp và ví dụ tôi đã chỉ ra, bạn có thể tạo lại tên tệp bên dưới với ngày hôm nay [26/10/2022] không?
- “Báo cáo tiêu thụ điện 2022_Q4_WW43. xlsx”
- “Báo cáo yêu cầu công cụ 20221021. csv”
Đáp án ở cuối bài viết. Hãy tự mình thử trước khi bạn kiểm tra câu trả lời. 😉
Tôi hy vọng bạn thích đọc bài viết này và hy vọng nó sẽ giúp bạn hiểu thêm về cách xử lý đối tượng DateTime trong Python. Cảm ơn. 😊
Giữ liên lạcĐăng ký trên YouTube
Ghi chú bên lềTrong Mẹo tự động hóa báo cáo với Python, tôi đã giải thích một số mẹo về tự động hóa báo cáo. Kiểm tra nó ra