Hướng dẫn how do you subtract a date from a string in python? - làm cách nào để trừ ngày khỏi một chuỗi trong python?

Tôi có hai chuỗi chứa một ngày như vậy "

start_date = 'Sun Sep 16 16:05:15 +0000 2012'
end_date = 'Sun Sep 17 23:55:20 +0000 2012'

Tôi cần thực hiện: end_date - start_date Nó sẽ trả về số giây phân tách ngày kết thúc và ngày bắt đầu.

Dữ liệu này được trích xuất từ ​​API Twitter. Đây là những gì json cho tôi. Vì có vẻ như một chuỗi thường được sử dụng, tôi cho rằng có một thư viện hoặc phương thức có thể xử lý việc này. Tôi chỉ không thể tìm thấy một. Cảm ơn!

Hướng dẫn how do you subtract a date from a string in python? - làm cách nào để trừ ngày khỏi một chuỗi trong python?

Đã hỏi ngày 8 tháng 11 năm 2012 lúc 16:15Nov 8, 2012 at 16:15

Đây là câu trả lời đầy đủ:

from datetime import datetime

start_date = 'Sun Sep 16 16:05:15 +0000 2012'
end_date = 'Sun Sep 17 23:55:20 +0000 2012'


def __datetime(date_str):
    return datetime.strptime(date_str, '%a %b %d %H:%M:%S +0000 %Y')

start = __datetime(start_date)
end = __datetime(end_date)

delta = end - start
print delta  # prints: 1 day, 7:50:05
print delta.total_seconds()  # prints: 114605.0

Đã trả lời ngày 8 tháng 11 năm 2012 lúc 16:25Nov 8, 2012 at 16:25

Spherespheresphere

1.33012 huy hiệu bạc24 Huy hiệu đồng12 silver badges24 bronze badges

2

Bạn đã trông khó như thế nào?

Mô -đun DateTime của Python sẽ phân tích định dạng này và cho phép bạn thực hiện số học trên các đối tượng kết quả.

Đây là mã mẫu:

a = datetime.datetime.strptime("Sun Sep 16 16:05:15 +0000 2012", "%a %b %d %H:%M:%S +0000 %Y")

Lưu ý rằng trong Windows (nơi tôi đã thử ở trên), Chỉ thị %z dường như không được hỗ trợ, đó là lý do tại sao phần +0000 được mã hóa cứng. Nếu bạn mong đợi phần này (bù UTC) thay đổi, bạn sẽ cần xử lý điều đó trong một bước riêng biệt, trừ khi bạn có thể xác minh rằng %z hoạt động cho bạn.

Đã trả lời ngày 8 tháng 11 năm 2012 lúc 16:18Nov 8, 2012 at 16:18

Khả năng thư giãnunwind

384K64 Huy hiệu vàng464 Huy hiệu bạc595 Huy hiệu Đồng64 gold badges464 silver badges595 bronze badges

0

Sử dụng phương thức DateTime.strptime để chuyển đổi chuỗi của bạn thành đối tượng DateTime. Bạn có thể tìm thấy các định dạng cần thiết ở đây: http://docs.python.org/2/l Library

Trong trường hợp của bạn:

%một địa phương tên viết tắt tên trong tuần. %b Locale từ viết tắt tên tháng. %d ngày của tháng dưới dạng số thập phân [01,31]. %H giờ (đồng hồ 24 giờ) dưới dạng số thập phân [00,23]. %M phút dưới dạng số thập phân [00,59]. %S thứ hai dưới dạng số thập phân [00,61]. %Y năm với thế kỷ là một số thập phân. %z utc bù trong biểu mẫu +hhmm hoặc -hhmm (chuỗi trống nếu đối tượng là ngây thơ).
%b Locale’s abbreviated month name.
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%M Minute as a decimal number [00,59].
%S Second as a decimal number [00,61].
%Y Year with century as a decimal number.
%z UTC offset in the form +HHMM or -HHMM (empty string if the the object is naive).

Đã trả lời ngày 8 tháng 11 năm 2012 lúc 16:19Nov 8, 2012 at 16:19

Artsiom Rudzenkaartsiom RudzenkaArtsiom Rudzenka

27.1k4 Huy hiệu vàng33 Huy hiệu bạc51 Huy hiệu Đồng4 gold badges33 silver badges51 bronze badges

Bạn có thể phân tích các ngày bằng cách sử dụng DateTime.DateTime.strptime (), sau đó bạn có thể thực hiện các thao tác số học?

Đã trả lời ngày 8 tháng 11 năm 2012 lúc 16:19Nov 8, 2012 at 16:19

Hướng dẫn how do you subtract a date from a string in python? - làm cách nào để trừ ngày khỏi một chuỗi trong python?

Artsiom Rudzenkaartsiom Rudzenka

start_date = 'Sun Sep 16 16:05:15 +0000 2012'
end_date = 'Sun Sep 17 23:55:20 +0000 2012'


def __datetime(date_str):
    return datetime.strptime(date_str, '%a %b %d %H:%M:%S +0000 %Y')

start = __datetime(start_date)
end = __datetime(end_date)

delta = end - start
print(delta)
print(delta.total_seconds())

hours = (delta.total_seconds())/3600

print("Hours %s" % hours)

minutes = (delta.total_seconds())//3600

print("minutes %s" % minutes)
print(divmod(delta.total_seconds(), 3600))

h, m = divmod(delta.total_seconds(), 3600)

print(h)
print(m)

M, s = divmod(m, 60)
print(M)
print(s)

27.1k4 Huy hiệu vàng33 Huy hiệu bạc51 Huy hiệu Đồng

Bạn có thể phân tích các ngày bằng cách sử dụng DateTime.DateTime.strptime (), sau đó bạn có thể thực hiện các thao tác số học?12 gold badges36 silver badges60 bronze badges

Từ DateTime Nhập DateTimeMay 25, 2016 at 20:52

Hướng dẫn how do you subtract a date from a string in python? - làm cách nào để trừ ngày khỏi một chuỗi trong python?

Làm thế nào để bạn trừ 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ừ hai chuỗi ngày trong Python?

Sử dụng hàm Strptime (DATE_STR, Định dạng) để chuyển đổi chuỗi ngày thành đối tượng DateTime theo định dạng tương ứng.Để có được sự khác biệt giữa hai ngày, trừ ngày 2 từ ngày 1.Một kết quả là một đối tượng Timedelta.subtract date2 from date1. A result is a timedelta object.

Làm thế nào để tôi khấu trừ ngày kể từ một ngày ở Python?

Sử dụng DateTime ...
a_date = DateTime.Ngày (2015, 10, 10).
Ngày = DateTime.Timedelta (5).
new_date = a_date - ngày.Trừ 5 ngày từ a_date ..
print(new_date).

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

Phương pháp 3: Sử dụng pandas date Offerset () trong phương thức này, DateTime.Striptime () được gọi và tạo một đối tượng ngày.Đối tượng ngày này được sửa đổi bằng cách chỉ ra số ngày để trừ (pd. DateOffset (ngày = 3)) từ ngày ban đầu để trả về ngày mới.Use Pandas DateOffset() In this method, datetime. striptime() is called and creates a date object. This date object is modified by indicating the number of days to subtract ( pd. DateOffset(days=3) ) from the original date to return the new date.