Trong artilce này, chúng tôi sẽ thảo luận về các cách khác nhau để thêm tháng vào 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 thêm n tháng vào đó 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 thêm n tháng vào ngày nhất định. Hãy để xem cách làm điều đó, 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, Để thêm n tháng vào một ngày nhất định, hãy tạo một đối tượng REMIVENTELTA đại diện cho khoảng thời gian N tháng và sau đó thêm nó vào đối tượng DateTime để có được ngày cuối cùng. Các bước chi tiết để thêm n tháng cho đến nay như sau, Quảng cáo Hãy để hiểu với một ví dụ, Thêm 20 tháng vào một ngày trong Python Đầu ra Chúng tôi đã thêm 20 tháng vào ngày2121/1/2021 để làm cho nó là2121/09/2022. Khi chúng tôi thêm tương đối [thời lượng 20 tháng] vào đố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 [].Thêm tháng vào một ngày trong Python bằng cách sử dụng Relativeselta
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]
# Add 20 months to a given datetime object
n = 20
future_date = dtObj + relativedelta[months=n]
print['Date after 20 months: ', future_date]
print['Date after 20 months: ', future_date.date[]]
# Convert datetime object to string in required format
future_date_str = future_date.strftime[date_format]
print['Date after 20 months [as string]: ', future_date_str]
Give Date: 21/1/2021
Date after 20 months: 2022-09-21 00:00:00
Date after 20 months: 2022-09-21
Date after 20 months [as string]: 21/09/2022
Thêm tháng vào một ngày trong Python bằng gấu trúc
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 để thêm n tháng vào một ngày.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 add N months to a date.
Hãy để hiểu với một ví dụ,
Thêm 20 tháng vào một ngày trong 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] # Add 10 months to a given datetime object n = 10 future_date = dtObj + pd.DateOffset[months=n] print['Date after 10 months: ', future_date] print['Date after 10 months: ', future_date.date[]] # Convert datetime object to string in required format future_date_str = future_date.strftime[date_format] print['Date after 10 months [as string]: ', future_date_str]
Đầu ra
Give Date: 1/21/2021 Date after 10 months: 2021-11-21 00:00:00 Date after 10 months: 2021-11-21 Date after 10 months [as string]: 11/21/2021
Chúng tôi đã thêm 20 tháng vào ngày2121/1/2021 để làm cho nó là2121/09/2022.
Summary:
Khi chúng tôi thêm tương đối [thời lượng 20 tháng] vào đố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 [].
Thêm tháng vào ngày hiện tại trong Python #
Để thêm tháng vào ngày hiện tại trong Python:
- Sử dụng phương thức
datetime.now[]
để có được ngày và giờ địa phương hiện tại. - Tạo một đối tượng
relativedelta
bằng cách chuyển số tháng cho lớprelativedelta
. - Tổng hợp ngày hiện tại và đối tượng
relativedelta
.
Copied!
from datetime import datetime from dateutil.relativedelta import relativedelta now = datetime.now[] print[now] # 👉️ 2022-06-22 19:27:37.483564 result = now + relativedelta[months=+3] print[result] # 👉️ 2022-09-22 19:27:37.483564
Chúng tôi đã sử dụng phương thức DateTime. Bây giờ để có được ngày và giờ địa phương hiện tại.
Đảm bảo nhập các lớp relativedelta
và
Give Date: 21/1/2021 Date after 20 months: 2022-09-21 00:00:00 Date after 20 months: 2022-09-21 Date after 20 months [as string]: 21/09/20223.
Nếu bạn không cài đặt mô -đun Give Date: 21/1/2021
Date after 20 months: 2022-09-21 00:00:00
Date after 20 months: 2022-09-21
Date after 20 months [as string]: 21/09/2022
4, hãy chạy lệnh sau:
Copied!
pip install python-dateutil
Lưu ý rằng chúng tôi đã có tiền tố số tháng với cộng với
Give Date: 21/1/2021 Date after 20 months: 2022-09-21 00:00:00 Date after 20 months: 2022-09-21 Date after 20 months [as string]: 21/09/20225 để chỉ ra rằng chúng tôi muốn thêm số tháng được chỉ định.
Lớp relativedelta
tự động xử lý tháng với số ngày khác nhau và thêm một tháng không bao giờ vượt qua ranh giới tháng.
Nếu cần thiết, năm sẽ được cuộn tự động [ví dụ: thêm 6 tháng vào một ngày vào tháng Chín].
Nếu bạn chỉ cần trích xuất ngày sau khi hoạt động, hãy gọi phương thức
Give Date: 21/1/2021 Date after 20 months: 2022-09-21 00:00:00 Date after 20 months: 2022-09-21 Date after 20 months [as string]: 21/09/20227 trên đối tượng
Give Date: 21/1/2021 Date after 20 months: 2022-09-21 00:00:00 Date after 20 months: 2022-09-21 Date after 20 months [as string]: 21/09/20223.
Copied!
from datetime import datetime from dateutil.relativedelta import relativedelta now = datetime.now[] print[now] # 👉️ 2022-06-22 19:27:37.483564 result = now + relativedelta[months=+3] print[result] # 👉️ 2022-09-22 19:27:37.483564 # 👇️ only extract updated date print[result.date[]] # 👉️ 2022-09-22
Phương thức DateTime.Date trả về một đối tượng ngày với cùng năm, tháng và ngày.
Nếu bạn cần định dạng ngày theo một cách nhất định, hãy sử dụng một chuỗi được định dạng theo nghĩa đen.
Copied!
from datetime import datetime from dateutil.relativedelta import relativedelta now = datetime.now[] print[now] # 👉️ 2022-06-22 19:34:48.991786 result = now + relativedelta[months=+5] print[result] # 👉️ 2022-11-22 19:34:48.991786 # 👇️ only extract updated date print[result.date[]] # 👉️ 2022-11-22 print[f'{result:%Y-%m-%d %H:%M:%S}'] # 👉️ 2022-11-22 19:34:48
Các chuỗi chữ được định dạng [F-Strings] Hãy cho chúng tôi bao gồm các biểu thức bên trong chuỗi bằng cách tiền tố chuỗi với
Give Date: 21/1/2021 Date after 20 months: 2022-09-21 00:00:00 Date after 20 months: 2022-09-21 Date after 20 months [as string]: 21/09/20229.
Hãy chắc chắn để bọc các biểu thức trong niềng răng xoăn -
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] # Add 10 months to a given datetime object n = 10 future_date = dtObj + pd.DateOffset[months=n] print['Date after 10 months: ', future_date] print['Date after 10 months: ', future_date.date[]] # Convert datetime object to string in required format future_date_str = future_date.strftime[date_format] print['Date after 10 months [as string]: ', future_date_str]0.
Các chuỗi chữ được định dạng cũng cho phép chúng tôi sử dụng ngôn ngữ nhỏ đặc tả định dạng trong các khối biểu thức.