Hướng dẫn how do you subtract time from a datetime object in python? - làm cách nào để trừ thời gian khỏi đối tượng datetime trong python?

Trong nhiệm vụ của mình, những gì tôi cần làm là trừ đi vài giờ và phút như (____ 10, ________ 11 ... bất kỳ giá trị nào) từ thời điểm (

from datetime import datetime, timedelta

d = datetime.today() - timedelta(hours=0, minutes=50)

d.strftime('%H:%M %p')
2) và ở phía đầu ra, tôi cần hiển thị thời gian sau khi trừ. Thời gian và giá trị
from datetime import datetime, timedelta

d = datetime.today() - timedelta(hours=0, minutes=50)

d.strftime('%H:%M %p')
3 được mã hóa cứng

Ex:

my_time = 1:05 AM

duration = 0:50

Vì vậy, đầu ra phải là

from datetime import datetime, timedelta

d = datetime.today() - timedelta(hours=0, minutes=50)

d.strftime('%H:%M %p')
4

Đầu ra phải là chính xác và ở định dạng AM/pm và áp dụng cho tất cả các giá trị (

from datetime import datetime, timedelta

d = datetime.today() - timedelta(hours=0, minutes=50)

d.strftime('%H:%M %p')
5).

Tôi không quan tâm khoảng vài giây, tôi chỉ cần nhiều giờ và phút.

Hướng dẫn how do you subtract time from a datetime object in python? - làm cách nào để trừ thời gian khỏi đối tượng datetime trong python?

Hỏi ngày 25 tháng 9 năm 2017 lúc 9:37Sep 25, 2017 at 9:37

Hướng dẫn how do you subtract time from a datetime object in python? - làm cách nào để trừ thời gian khỏi đối tượng datetime trong python?

0

from datetime import datetime, timedelta

d = datetime.today() - timedelta(hours=0, minutes=50)

d.strftime('%H:%M %p')

Đã trả lời ngày 25 tháng 9 năm 2017 lúc 9:46Sep 25, 2017 at 9:46

Asfartoasfartoasfarto

1.8311 Huy hiệu vàng10 Huy hiệu bạc10 Huy hiệu đồng1 gold badge10 silver badges10 bronze badges

1

Điều này làm việc cho tôi:

from datetime import datetime
s1 = '10:04:00'
s2 = '11:03:11' # for example
format = '%H:%M:%S'
time = datetime.strptime(s2, format) - datetime.strptime(s1, format)
print time

Đã trả lời ngày 25 tháng 9 năm 2017 lúc 10:39Sep 25, 2017 at 10:39

TaniyataniyaTaniya

2382 Huy hiệu bạc8 Huy hiệu Đồng2 silver badges8 bronze badges

2

from datetime import datetime

d1 = datetime.strptime("01:05:00.000", "%H:%M:%S.%f")
d2 = datetime.strptime("00:50:00.000", "%H:%M:%S.%f")

print (d1-d2)

Đã trả lời ngày 25 tháng 9 năm 2017 lúc 9:42Sep 25, 2017 at 9:42

Thánh lễ Fuzed MassfuzedFuzed Mass

4101 Huy hiệu vàng3 Huy hiệu bạc1 gold badge3 silver badges10 bronze badges

0

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ừ đi hàng giờ từ một dấu thời gian nhất định trong Python bằng thời gian bằng thời gian, gấu trúc hoặc tương đối.

Giả sử bạn có dấu thời gian là chuỗi và bạn muốn trừ n giờ từ nó, trong đó n có thể là bất kỳ số nào. Nhưng bạn muốn dấu thời gian cuối cùng sau khi trừ n giờ, theo định dạng chuỗi đã cho. Hãy để xem cách làm điều đó,

Trừ những giờ từ dấu thời gian trong Python sử dụng Timedelta

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,module datetime for manipulation of date and time. It consists of following classes,

  • 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ừ đi hàng giờ từ một dấu thời gian nhất định, chúng tôi sẽ sử dụng các lớp DateTime và Timedelta của mô -đun DateTime.

Các bước để trừ n giờ từ DateTime như sau,

Quảng cáo

Bước 1: Nếu dấu thời gian đã 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 dấu thời gian đã 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 giờ đối số với giá trị n trong hàm tạo thời gian. Nó sẽ cung cấp cho chúng tôi một đối tượng DateTime mới, chỉ vào dấu thời gian mới, tức là n giờ trước dấu thời gian đã 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 timestamp 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 timestamp is already a datetime object, then you can skip this step.
Step 2: Create an object of timedelta, to represent an interval of N hours. For that, pass the argument hours with value N in the timedelta constructor.
Step 3: Subtract the timedelta object from the datetime object. It will give us a new datetime object, pointing to a new timestamp i.e. N hours before the given timestamp.
Step 4: If you want the final timestamp 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ừ 2 giờ từ dấu thời gian trong Python

from datetime import datetime
from datetime import timedelta

# Given timestamp in string
time_str = '24/7/2021 11:13:08.230010'
date_format_str = '%d/%m/%Y %H:%M:%S.%f'

# create datetime object from timestamp string
given_time = datetime.strptime(time_str, date_format_str)

print('Given Time: ', given_time)

n = 2
# Subtract 2 hours from datetime object
final_time = given_time - timedelta(hours=n)

print('Final Time (2 hours ahead of given time ): ', final_time)

# Convert datetime object to string in specific format 
final_time_str = final_time.strftime('%d/%m/%Y %H:%M:%S.%f')
print('Final Time as string object: ', final_time_str)

Đầu ra

Given Time:  2021-07-24 11:13:08.230010
Final Time (2 hours ahead of given time ):  2021-07-24 09:13:08.230010
Final Time as string object:  24/07/2021 09:13:08.230010

Như dấu thời gian đã được đưa ra trong chuỗi, vì vậy trước tiên chúng tôi đã chuyển đổi nó thành đối tượng DateTime. Sau đó, chúng tôi đã tạo một đối tượng tương đối, đại diện cho 30 giờ bằng cách chuyển đối số giờ là 30. Sau đó trừ đi từ đối tượng DateTime. Nó đã trả lại một đối tượng DateTime mới chỉ vào dấu thời gian mới, tức là 30 giờ trước dấu thời gian đã cho.

Chúng tôi đã tìm hiểu về ba cách khác nhau để trừ n giờ từ thời gian trong Python.

Chúng ta có thể trừ hai dấu thời gian trong Python không?

Phương thức TimeDelta (). Để tìm sự khác biệt giữa hai ngày trong Python, người ta có thể sử dụng lớp Timedelta có trong thư viện DateTime. Lớp Timedelta lưu trữ sự khác biệt giữa hai đối tượng DateTime.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 subtract N hours from a datetime. Let’s understand with an example,

Trừ 3 giờ từ một DateTime trong Python

from datetime import datetime
import pandas as pd

# Given timestamp in string
time_str = '24/7/2021 11:13:08.230010'
date_format_str = '%d/%m/%Y %H:%M:%S.%f'

# create datetime object from timestamp string
given_time = datetime.strptime(time_str, date_format_str)

print('Given Time: ', given_time)

n = 3
# Subtract 3 hours from datetime object
final_time = given_time - pd.DateOffset(hours=n)

print('Final Time (3 hours ahead of given time ): ', final_time)

# Convert datetime object to string in specific format 
final_time_str = final_time.strftime('%d/%m/%Y %H:%M:%S.%f')
print('Final Time as string object: ', final_time_str)

Đầu ra

Given Time:  2021-07-24 11:13:08.230010
Final Time (3 hours ahead of given time ):  2021-07-24 08:13:08.230010 
Final Time as string object:  24/07/2021 08:13:08.230010

Chúng tôi đã tạo một đối tượng Date Offerset bằng cách chuyển đối số giờ là 3. Sau đó, chúng tôi đã trừ đối tượng DateOffet này vào đối tượng DateTime. Nó đã trả lại một đối tượng DateTime mới chỉ vào dấu thời gian mới, tức là 3 giờ trước dấu thời gian đã cho.

Trừ những giờ từ dấu thời gian nhất định trong Python bằng cách sử dụng tương đối

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 RelativeSelta có tất cả các thuộc tính để thể hiện một thời lượng, tức là năm, tháng, ngày, giờ, phút, giây và micro giây.dateutil module provides a class relativedelta, which represents an interval of time. The relativedelta class has all the attributes to represent a duration i.e. Year, Month, Day, Hours, Minutes, Seconds and Microseconds.

Vì vậy, để trừ đi hàng giờ từ một dấu thời gian nhất định, chúng ta có thể tạo một đối tượng tương đối để biểu thị khoảng thời gian tính bằng giờ và sau đó trừ nó khỏi đối tượng DateTime có chứa ngày đưa ra. Hãy để hiểu với một ví dụ,

Trừ 30 giờ từ dấu thời gian trong Python

from datetime import datetime
from dateutil.relativedelta import relativedelta

# Given timestamp in string
time_str = '24/7/2021 11:13:08.230010'
date_format_str = '%d/%m/%Y %H:%M:%S.%f'

# create datetime object from timestamp string
given_time = datetime.strptime(time_str, date_format_str)

print('Given Time: ', given_time)

n = 30
# Subtract 3 hours from datetime object
final_time = given_time - relativedelta(hours=n)

print('Final Time (30 hours ahead of given time ): ', final_time)

# Convert datetime object to string in specific format 
final_time_str = final_time.strftime('%d/%m/%Y %H:%M:%S.%f')
print('Final Time as string object: ', final_time_str)

Đầu ra

Given Time:  2021-07-24 11:13:08.230010
Final Time (30 hours ahead of given time ):  2021-07-23 05:13:08.230010
Final Time as string object:  23/07/2021 05:13:08.230010

Chúng tôi đã tạo một đối tượng Date Offerset bằng cách chuyển đối số giờ là 3. Sau đó, chúng tôi đã trừ đối tượng DateOffet này vào đối tượng DateTime. Nó đã trả lại một đối tượng DateTime mới chỉ vào dấu thời gian mới, tức là 3 giờ trước dấu thời gian đã cho.

Summary:

Trừ những giờ từ dấu thời gian nhất định trong Python bằng cách sử dụng tương đối

Chúng ta có thể trừ hai dấu thời gian trong Python không?

Phương thức TimeDelta ().Để tìm sự khác biệt giữa hai ngày trong Python, người ta có thể sử dụng lớp Timedelta có trong thư viện DateTime.Lớp Timedelta lưu trữ sự khác biệt giữa hai đối tượng DateTime.one can use the timedelta class which is present in the datetime library. The timedelta class stores the difference between two datetime objects.

Khi bạn trừ một biến DateTime từ một biến DateTime khác mà bạn nhận được?

Trong .Net, nếu bạn trừ một đối tượng DateTime từ một đối tượng khác, bạn sẽ nhận được đối tượng TimeSpan.Sau đó, bạn có thể sử dụng thuộc tính Ticks trên đối tượng TimesPan đó để có được số lượng ve giữa hai đối tượng DateTime.a TimeSpan object. You can then use the Ticks property on that TimeSpan object to get the number of ticks between the two DateTime objects.

Thời gian bù đắp trong Python là gì?

Hàm UTCoffset () được sử dụng để trả về một đối tượng TimeDelTA đại diện cho sự khác biệt giữa thời gian cục bộ và thời gian UTC.Hàm này được sử dụng trong lớp DateTime của DateTime.Ở đây phạm vi của utcoffset là thời gian (giờ = 24)used to return a timedelta object that represents the difference between the local time and UTC time. This function is used in used in the datetime class of module datetime. Here range of the utcoffset is “timedelta(hours=24) <= offset <= timedelta(hours=24)”.