Trong artilce này, chúng tôi sẽ thảo luận về các cách khác nhau để trừ các tháng kể từ một ngày nhất định ở Python.
Giả sử chúng ta có một ngày2121/1/2021 và chúng ta muốn trừ n tháng từ nó và n có thể là 1, 20, 50 hoặc bất kỳ số nào khác. Chúng tôi muốn ngày cuối cùng sau khi trừ n tháng kể từ ngày nhất định. Hãy để xem cách làm điều đó,
Trừ những tháng kể từ một ngày ở Python sử dụng Relativeselta
Trong Python, mô -đun DateUtil cung cấp một lớp tương đối, đại diện cho một khoảng thời gian. Lớp tương đối đượcdateutil module provides a class relativedelta, which represents an interval of time. The relativedelta class has following attributes which tells about the duration,
- Năm
- Tháng
- Ngày
- Giờ
- Phút
- Giây
- Micro giây
Để trừ n tháng kể từ một ngày nhất định, hãy tạo một đối tượng REMIVENTELTA đại diện cho khoảng n tháng và sau đó trừ đi từ đối tượng DateTime để có được ngày cuối cùng.relativedelta object representing the interval of N months and then subtract that from the datetime object to get the final date.
Các bước để trừ n tháng kể từ ngày như sau,
Quảng cáo
Bước 1: Nếu ngày đã cho ở định dạng chuỗi, thì chúng ta cần chuyển đổi nó thành đối tượng DateTime. Cho rằng chúng ta có thể sử dụng hàm DateTime.strptime []. Trong khi đó, nếu ngày đã cho đã là một đối tượng DateTime, thì bạn có thể bỏ qua bước này. Đối với điều đó, hãy vượt qua các tháng đối số với giá trị n trong hàm tạo RelativeSelta.Step 3: Trừ đối tượng RelativeSelta từ đối tượng DateTime. Nó sẽ cung cấp cho chúng tôi một điểm đối tượng DateTime đến một ngày, tức là n tháng trước ngày đã cho. Bạn có thể chuyển chuỗi định dạng làm đối số và nó sẽ chuyển đổi đối tượng DateTime thành một chuỗi của định dạng được chỉ định. If the given date is in a string format, then we need to convert it to the datetime object. For that we can use the datetime.strptime[] function. Whereas, if the given date is
already a datetime object, then you can skip this step.
Step 2: Create an object of relativedelta, to represent an interval of N months. For that, pass the argument months with value N in the relativedelta constructor.
Step 3: Subtract the relativedelta object from the datetime object. It will give us a datetime object point to a date i.e. N months before the given date.
Step 4: If you want the final date in
string format, then convert the datetime object to string using strftime[]. You can pass the format string as argument and it will convert the datetime object to a string of the specified format.
Hãy để hiểu với một ví dụ,
Trừ 20 tháng đến một ngày ở Python
from datetime import datetime from dateutil.relativedelta import relativedelta given_date = '21/1/2021' print['Give Date: ', given_date] date_format = '%d/%m/%Y' dtObj = datetime.strptime[given_date, date_format] # Subtract 20 months from a given datetime object n = 20 past_date = dtObj - relativedelta[months=n] print['Past Date: ', past_date] print['Past Date: ', past_date.date[]] # Convert datetime object to string in required format past_date_str = past_date.strftime[date_format] print['Past Date as string object: ', past_date_str]
Đầu ra
Give Date: 21/1/2021 Past Date: 2019-05-21 00:00:00 Past Date: 2019-05-21 Past Date as string object: 21/05/2019
Chúng tôi đã trừ 20 tháng trong ngày 2121/1/2021 để làm cho nó là2121/05/2019.
Khi chúng tôi trừ đi tương đối [thời lượng 20 tháng] từ đối tượng DateTime, do đó, nó đã trả về một đối tượng DateTime mới chỉ vào ngày cuối cùng. Vì đối tượng DateTime cũng có dấu thời gian, do đó nó cũng được in. Nếu bạn chỉ muốn ngày, thì bạn có thể lấy đối tượng ngày từ đối tượng DateTime bằng hàm Date [], giống như chúng tôi đã làm trong ví dụ trên. Cuối cùng, chúng tôi đã chuyển đổi đối tượng DateTime thành định dạng chuỗi cần thiết bằng cách sử dụng DateTime.strftime [].
Pandas cung cấp một ngày học lớp, để lưu trữ thông tin thời lượng hoặc khoảng. Nó chủ yếu được sử dụng để tăng hoặc giảm dấu thời gian. Nó có thể được sử dụng với mô -đun DateTime để trừ n tháng kể từ ngày.provide a class DateOffset, to store the duration or interval information. It is mostly used to increment or decrement a timestamp. It can be used with datetime module to to subtract N months from a date.
Hãy để hiểu với một ví dụ,
Trừ 20 tháng đến một ngày ở Python
from datetime import datetime import pandas as pd given_date = '1/21/2021' print['Give Date: ', given_date] # Convert date string to datetime object date_format = '%m/%d/%Y' dtObj = datetime.strptime[given_date, date_format] # Subtract 10 months from a given datetime object n = 10 past_date = dtObj - pd.DateOffset[months=n] print['Past Date: ', past_date] print['Past Date: ', past_date.date[]] # Convert datetime object to string in required format past_date_str = past_date.strftime[date_format] print['Past Date as string object: ', past_date_str]
Đầu ra
Give Date: 1/21/2021 Past Date: 2020-03-21 00:00:00 Past Date: 2020-03-21 Past Date as string object: 03/21/2020
Chúng tôi đã trừ 20 tháng trong ngày 2121/1/2021 để làm cho nó là2121/05/2019.
Summary:
Khi chúng tôi trừ đi tương đối [thời lượng 20 tháng] từ đối tượng DateTime, do đó, nó đã trả về một đối tượng DateTime mới chỉ vào ngày cuối cùng. Vì đối tượng DateTime cũng có dấu thời gian, do đó nó cũng được in. Nếu bạn chỉ muốn ngày, thì bạn có thể lấy đối tượng ngày từ đối tượng DateTime bằng hàm Date [], giống như chúng tôi đã làm trong ví dụ trên. Cuối cùng, chúng tôi đã chuyển đổi đối tượng DateTime thành định dạng chuỗi cần thiết bằng cách sử dụng DateTime.strftime [].