Hướng dẫn how do i remove days from a date in python? - làm cách nào để xóa ngày khỏi một ngày trong python?

Nếu đối tượng Datetime Python của bạn là nhận biết thời gian hơn bạn nên cẩn thận để tránh các lỗi xung quanh các chuyển đổi DST (hoặc thay đổi trong bù UTC vì những lý do khác):

from datetime import datetime, timedelta
from tzlocal import get_localzone # pip install tzlocal

DAY = timedelta(1)
local_tz = get_localzone()   # get local timezone
now = datetime.now(local_tz) # get timezone-aware datetime object
day_ago = local_tz.normalize(now - DAY) # exactly 24 hours ago, time may differ
naive = now.replace(tzinfo=None) - DAY # same time
yesterday = local_tz.localize(naive, is_dst=None) # but elapsed hours may differ

Nói chung,

import pytz # pip install pytz

local_tz = pytz.timezone('America/Los_Angeles')
now = local_tz.localize(datetime(2014, 11, 2, 10), is_dst=None)
# 2014-11-02 10:00:00 PST-0800
3 và
import pytz # pip install pytz

local_tz = pytz.timezone('America/Los_Angeles')
now = local_tz.localize(datetime(2014, 11, 2, 10), is_dst=None)
# 2014-11-02 10:00:00 PST-0800
4 có thể khác nhau nếu bù UTC cho múi giờ địa phương đã thay đổi trong ngày cuối cùng.

Ví dụ, thời gian tiết kiệm ánh sáng ban ngày/thời gian mùa hè kết thúc vào mặt trời 2 tháng 11 năm 2014 lúc 02:00:00 A.M. Ở Mỹ/los_angele Timezone Do đó nếu:

import pytz # pip install pytz

local_tz = pytz.timezone('America/Los_Angeles')
now = local_tz.localize(datetime(2014, 11, 2, 10), is_dst=None)
# 2014-11-02 10:00:00 PST-0800

Sau đó

import pytz # pip install pytz

local_tz = pytz.timezone('America/Los_Angeles')
now = local_tz.localize(datetime(2014, 11, 2, 10), is_dst=None)
# 2014-11-02 10:00:00 PST-0800
3 và
import pytz # pip install pytz

local_tz = pytz.timezone('America/Los_Angeles')
now = local_tz.localize(datetime(2014, 11, 2, 10), is_dst=None)
# 2014-11-02 10:00:00 PST-0800
4 khác nhau:

  • import pytz # pip install pytz
    
    local_tz = pytz.timezone('America/Los_Angeles')
    now = local_tz.localize(datetime(2014, 11, 2, 10), is_dst=None)
    # 2014-11-02 10:00:00 PST-0800
    
    3 đúng 24 giờ trước (liên quan đến
    import pytz # pip install pytz
    
    local_tz = pytz.timezone('America/Los_Angeles')
    now = local_tz.localize(datetime(2014, 11, 2, 10), is_dst=None)
    # 2014-11-02 10:00:00 PST-0800
    
    8) nhưng lúc 11 giờ sáng, không phải lúc 10 giờ sáng là
    import pytz # pip install pytz
    
    local_tz = pytz.timezone('America/Los_Angeles')
    now = local_tz.localize(datetime(2014, 11, 2, 10), is_dst=None)
    # 2014-11-02 10:00:00 PST-0800
    
    8
  • import pytz # pip install pytz
    
    local_tz = pytz.timezone('America/Los_Angeles')
    now = local_tz.localize(datetime(2014, 11, 2, 10), is_dst=None)
    # 2014-11-02 10:00:00 PST-0800
    
    4 là ngày hôm qua lúc 10 giờ sáng nhưng đó là 25 giờ trước (so với
    import pytz # pip install pytz
    
    local_tz = pytz.timezone('America/Los_Angeles')
    now = local_tz.localize(datetime(2014, 11, 2, 10), is_dst=None)
    # 2014-11-02 10:00:00 PST-0800
    
    8), không phải 24 giờ.

>>> import pendulum  # $ pip install pendulum

>>> now = pendulum.create(2014, 11, 2, 10, tz='America/Los_Angeles')
>>> day_ago = now.subtract(hours=24)  # exactly 24 hours ago
>>> yesterday = now.subtract(days=1)  # yesterday at 10 am but it is 25 hours ago

>>> (now - day_ago).in_hours()
24
>>> (now - yesterday).in_hours()
25

>>> now

>>> day_ago

>>> yesterday

2 Mô -đun xử lý tự động:

>>> import pendulum  # $ pip install pendulum

>>> now = pendulum.create(2014, 11, 2, 10, tz='America/Los_Angeles')
>>> day_ago = now.subtract(hours=24)  # exactly 24 hours ago
>>> yesterday = now.subtract(days=1)  # yesterday at 10 am but it is 25 hours ago

>>> (now - day_ago).in_hours()
24
>>> (now - yesterday).in_hours()
25

>>> now

>>> day_ago

>>> yesterday

Hướng dẫn how do i remove days from a date in python? - làm cách nào để xóa ngày khỏi một ngày trong python?

Trong bài viết này, chúng tôi sẽ thảo luận về các cách khác nhau để trừ ngày kể từ một ngày nhất định ở Python.

Giả sử chúng ta có một ngày ngày21/1/2021 và chúng ta muốn trừ n ngày với nó và n có thể là 1, 7, 300 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 ngày kể từ ngày nhất định. Hãy để xem cách làm điều đó,

Trừ những ngày kể từ một ngày trong Python sử dụng TimeDelta & DateTime

Python cung cấp một mô -đun dữ liệu để thao tác ngày và giờ. Nó bao gồm các lớp học sau,

  • DateTime.Date: Một đối tượng của lớp ngày chỉ định ngày sử dụng năm, tháng và ngày An object of date class specifies a date using year, month and day
  • DateTime.time: Một đối tượng của lớp thời gian chỉ định dấu thời gian bằng giờ, phút, giây, micro giây và tzinfo. An object of time class specifies a timestamp using hour, minute, second, microsecond, and tzinfo.
  • DateTime.Datetime: Một đối tượng của DateTime là sự kết hợp của ngày và thời gian. An object of datetime is a combination of a date and a time.
  • datetime.timedelta: một thời lượng, thể hiện sự khác biệt giữa hai ngày hoặc thời gian hoặc dữ liệu. A duration, that represents the difference between two dates or times or datetimes.
  • DateTime.tzinfo: Nó chứa thông tin múi giờ. It contains the timezone information.

Để trừ ngày kể từ một ngày nhất định, chúng tôi sẽ sử dụng các lớp DateTime và Timedelta của mô -đun DateTime của Python.

Các bước để trừ n ngày cho đến nay như sau,

  • 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.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.
  • Bước 2: Tạo một đối tượng của Timedelta, để biểu thị khoảng N ngày. Đối với điều đó, vượt qua các ngày đối số với giá trị n trong hàm tạo thời gian. Create an object of timedelta, to represent an interval of N days. For that, pass the argument days with value N in the timedelta constructor.
  • Bước 3: Trừ đối tượng Timedelta khỏi đối tượng DateTime. Nó sẽ cung cấp cho chúng tôi một đối tượng DateTime trỏ đến một ngày, tức là ngày trước ngày đã cho. Subtract the timedelta object from the datetime object. It will give us a datetime object pointing to a date i.e. N days before the given date.
  • Bước 4: Nếu bạn muốn ngày cuối cùng ở định dạng chuỗi, thì hãy chuyển đổi đối tượng DateTime thành chuỗi bằng cách sử dụng strftime (). 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 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ụ,

Quảng cáo

Trừ 10 ngày kể từ một ngày ở Python sử dụng Timedelta

from datetime import datetime
from datetime import timedelta

given_date = '21/1/2021'
print('Given Date: ', given_date)

# Create datetime object from date string
date_format = '%d/%m/%Y'
dtObj = datetime.strptime(given_date, date_format)

# Subtract 10 days from a given datetime object
n = 10
past_date = dtObj - timedelta(days=n)

print('Past Date: ', past_date)
print('Past Date: ', past_date.date())

past_date_str = past_date.strftime(date_format)
print('Past Date as string object: ', past_date_str)

Đầu ra

Given Date:  21/1/2021
Past Date:  2021-01-11 00:00:00
Past Date:  2021-01-11
Past Date as string object:  11/01/2021

Chúng tôi đã trừ 10 ngày trong ngày 2121/1/2021 để thực hiện nó, 1111/01/2021.

Khi chúng tôi trừ Timedelta (thời lượng 10 ngày) từ đối tượng DateTime, do đó, nó đã trả về một đối tượng DateTime mới chỉ vào ngày mới. 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 ().

Trừ những ngày kể từ một ngày ở Python sử dụ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 để trừ n ngày kể 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 subtract N days from a date.

Hãy để hiểu với một ví dụ,

Trừ 100 ngày kể từ một ngày ở Python

from datetime import datetime
import pandas as pd

given_date = '1/21/2021'
print('Given Date: ', given_date)

# Create datetime object from date string
date_format = '%m/%d/%Y'
dtObj = datetime.strptime(given_date, date_format)

# Subtract 100 days from a given datetime object
n = 100
past_date = dtObj - pd.DateOffset(days=n)

print('Past Date: ', past_date)
print('Past Date: ', past_date.date())

past_date_str = past_date.strftime(date_format)
print('Past Date as string object: ', past_date_str)

Đầu ra

Given Date:  1/21/2021
Past Date:  2020-10-13 00:00:00        
Past Date:  2020-10-13
Past Date as string object:  10/13/2020

Chúng tôi đã tạo một đối tượng Date Offerset bằng cách chuyển các ngày là 100. Sau đó, chúng tôi đã trừ đối tượng DateOffset này khỏi đối tượng DateTime. Nó đã trả về một đối tượng DateTime trỏ đến ngày, tức là trước 100 ngày kể từ ngày nhất định.DateOffset object by passing days as 100. Then we subtracted this DateOffset object from the datetime object. It returned a datetime object pointing to the date i.e. before 100 days from the given date.

Hãy cùng xem một số ví dụ khác,

Ví dụ: Trừ 365 ngày kể từ một ngày ở Python

from datetime import datetime
from datetime import timedelta

given_date = '1/21/2021'
print('Given Date: ', given_date)

# Create datetime object from date string
date_format = '%m/%d/%Y'
dtObj = datetime.strptime(given_date, date_format)

# Subtract 365 days from a given datetime object
n = 365
past_date = dtObj - timedelta(days=n)

print('Past Date: ', past_date)
print('Past Date: ', past_date.date())

past_date_str = past_date.strftime(date_format)
print('Past Date as string object: ', past_date_str)

Đầu ra

Given Date:  1/21/2021
Past Date:  2020-01-22 00:00:00        
Past Date:  2020-01-22
Past Date as string object:  01/22/2020

Given Date:  1/21/2021
Past Date:  2020-10-13 00:00:00        
Past Date:  2020-10-13
Past Date as string object:  10/13/2020

Chúng tôi đã tạo một đối tượng Date Offerset bằng cách chuyển các ngày là 100. Sau đó, chúng tôi đã trừ đối tượng DateOffset này khỏi đối tượng DateTime. Nó đã trả về một đối tượng DateTime trỏ đến ngày, tức là trước 100 ngày kể từ ngày nhất định.

from datetime import datetime
from datetime import timedelta

given_date = '21/1/2021'
print('Given Date: ', given_date)

# Create datetime object from date string
date_format = '%d/%m/%Y'
dtObj = datetime.strptime(given_date, date_format)

# Subtract 60 days from a given datetime object
n = 60
past_date = dtObj - timedelta(days=n)

print('Past Date: ', past_date)
print('Past Date: ', past_date.date())

past_date_str = past_date.strftime(date_format)
print('Past Date as string object: ', past_date_str)

Đầu ra

import pytz # pip install pytz

local_tz = pytz.timezone('America/Los_Angeles')
now = local_tz.localize(datetime(2014, 11, 2, 10), is_dst=None)
# 2014-11-02 10:00:00 PST-0800
0

Given Date:  1/21/2021
Past Date:  2020-10-13 00:00:00        
Past Date:  2020-10-13
Past Date as string object:  10/13/2020

Chúng tôi đã tạo một đối tượng Date Offerset bằng cách chuyển các ngày là 100. Sau đó, chúng tôi đã trừ đối tượng DateOffset này khỏi đối tượng DateTime. Nó đã trả về một đối tượng DateTime trỏ đến ngày, tức là trước 100 ngày kể từ ngày nhất định.

import pytz # pip install pytz

local_tz = pytz.timezone('America/Los_Angeles')
now = local_tz.localize(datetime(2014, 11, 2, 10), is_dst=None)
# 2014-11-02 10:00:00 PST-0800
1

Đầu ra

import pytz # pip install pytz

local_tz = pytz.timezone('America/Los_Angeles')
now = local_tz.localize(datetime(2014, 11, 2, 10), is_dst=None)
# 2014-11-02 10:00:00 PST-0800
2

Given Date:  1/21/2021
Past Date:  2020-10-13 00:00:00        
Past Date:  2020-10-13
Past Date as string object:  10/13/2020

Summary:

Chúng tôi đã tạo một đối tượng Date Offerset bằng cách chuyển các ngày là 100. Sau đó, chúng tôi đã trừ đối tượng DateOffset này khỏi đối tượng DateTime. Nó đã trả về một đối tượng DateTime trỏ đến ngày, tức là trước 100 ngày kể từ ngày nhất định.

Làm thế nào để bạn thêm hoặc trừ ngày kể từ một ngày trong Python?

Để thêm hoặc trừ ngày, chúng tôi sử dụng một thứ gọi là hàm TimedelTa () có thể được tìm thấy trong lớp DateTime. Nó được sử dụng để thao tác ngày và chúng ta có thể thực hiện các hoạt động số học trên các ngày như thêm hoặc trừ.timedelta() function which can be found under the DateTime class. It is used to manipulate Date, and we can perform arithmetic operations on dates like adding or subtracting.

Làm thế nào để bạn trừ đi những ngày từ một chuỗi trong Python?

Các bước để trừ n ngày cho đến nay như sau,..
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.....
Bước 2: Tạo một đối tượng của Timedelta, để biểu thị khoảng N ngày.....
Bước 3: Trừ đối tượng Timedelta khỏi đối tượng DateTime ..

Làm thế nào để bạn trừ ngày kể từ ngày trong gấu trúc?

Phương pháp 4: Sử dụng gấu trúc để trừ các cột ngày..
df = pd.DataFrame (cột = ['được thuê', 'bị sa thải']) df.Hired = ['2020-01-24', '2022-01-27'].
df.fired = ['2021-01-13', '2022-04-29'] df.Hired = pd.TO_DATETIME (df.Hired).
df.fired = pd.to_dateTime (df.fired) diff = (df.fired - df.hire).

Làm thế nào để bạn trừ hai ngày kể từ một ngày ở Python?

Mô-đun DateTime () Python có mô-đun DateTime tích hợp hỗ trợ chúng tôi giải quyết một số vấn đề liên quan đến ngày.Chúng tôi chỉ cần nhập hai ngày với loại ngày và trừ chúng để khám phá sự khác biệt giữa hai ngày, cho chúng tôi số ngày giữa hai ngày.input the two dates with the date type and subtract them to discover the difference between the two dates, which gives us the number of days between the two dates.