Kiểm tra thời gian giữa hai lần python

Python có một mô-đun ngày giờ 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 tháng. Chúng tôi chỉ 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, điều này cho chúng tôi số ngày giữa hai ngày

cú pháp

Cú pháp của phương thức date() trong module datetime như sau

datetime.date(year, month, day)

Thông số

  • năm. Lấy tham số này làm năm
  • tháng. Lấy tham số này làm tháng
  • ngày. Lấy tham số này làm ngày

trả lại

Hàm này trả về đối tượng ngày có cùng năm, tháng và ngày. Tất cả các đối số là bắt buộc. Các đối số có thể là số nguyên, trong các phạm vi sau

  • MINYEAR <= year <= MAXYEAR
  • 1 <= tháng <= 12
  • 1 <= ngày <= số ngày trong tháng và năm đã cho

Ví dụ

Trong mã ví dụ sau, chúng tôi xác định hai ngày mà chúng tôi muốn tìm sự khác biệt về số ngày giữa chúng. Sau đó trừ những ngày này để có được một đối tượng timedelta và kiểm tra thuộc tính ngày của đối tượng này để có được kết quả cần thiết

Python cung cấp một mô-đun datetime để thao tác ngày và giờ. Nó bao gồm các lớp sau,

  • ngày giờ. ngày tháng. Một đối tượng của lớp ngày chỉ định một ngày sử dụng năm, tháng và ngày
  • ngày giờ. thời gian. Một đối tượng của lớp thời gian chỉ định dấu thời gian sử dụng giờ, phút, giây, micro giây và tzinfo
  • ngày giờ. ngày giờ. Một đối tượng của datetime là sự kết hợp của ngày và giờ
  • ngày giờ. múi giờ. Khoảng thời gian, đại diện cho sự khác biệt giữa hai ngày hoặc thời gian hoặc ngày giờ
  • ngày giờ. tzinfo. Nó chứa thông tin múi giờ

Bây giờ để có sự khác biệt giữa hai dấu thời gian trong python, chúng tôi sẽ sử dụng mô-đun datetime

Đầu tiên chúng ta sẽ tạo các đối tượng ngày giờ bắt đầu và kết thúc từ các dấu thời gian của chuỗi. Sau đó, chúng tôi sẽ trừ các đối tượng datetime để lấy thời lượng trong datetime. đối tượng múi giờ. Sau đó, sử dụng các thuộc tính của đối tượng timedelta, chúng tôi sẽ tìm nạp số giờ ở giữa hai dấu thời gian. Hãy hiểu với một số ví dụ,

Python Ví dụ 1. Nhận sự khác biệt giữa hai dấu thời gian tính bằng giờ

Chuyển đổi dấu thời gian ở định dạng chuỗi thành đối tượng datetime. Sau đó trừ chúng và lấy đối tượng timedelta. Sử dụng hàm total_seconds() của timedelta để lấy toàn bộ thời lượng giữa hai dấu thời gian tính bằng giây, sau đó chuyển đổi thành giờ bằng cách chia cho 3600. Ví dụ,

from datetime import datetime

date_1 = '24/7/2021 11:13:08.230010'
date_2 = '24/7/2021 11:14:18.333338'

date_format_str = '%d/%m/%Y %H:%M:%S.%f'

start = datetime.strptime(date_1, date_format_str)
end =   datetime.strptime(date_2, date_format_str)

# Get interval between two timstamps as timedelta object
diff = end - start

# Get interval between two timstamps in hours
diff_in_hours = diff.total_seconds() / 3600

print('Difference between two datetimes in hours:')
print(diff_in_hours)

đầu ra

Difference between two datetimes in hours:
0.019473146666666667

Làm thế nào nó hoạt động?

Chúng tôi đã tạo hai đối tượng ngày giờ từ hai dấu thời gian ở định dạng chuỗi, bằng cách chuyển ngày và định dạng của nó vào hàm strptime(). Sau đó, chúng tôi đã trừ hai đối tượng ngày giờ này và nhận được ngày giờ. đối tượng timedelta, đại diện cho khoảng thời gian giữa hai ngày. Lớp timedelta có hàm thành viên total_seconds(), biểu thị toàn bộ thời lượng tính bằng giây (bao gồm cả phần phân số cho đến mili giây). Chúng tôi đã sử dụng điều đó để lấy sự khác biệt giữa hai dấu thời gian tính bằng giây và sau đó chúng tôi chuyển đổi nó thành giờ bằng cách chia nó cho 3600

Python Ví dụ 2. Nhận sự khác biệt giữa hai datetimes tính bằng giờ

Hãy xem một ví dụ khác, trong đó cả hai dấu thời gian cách nhau hơn 1 ngày,

from datetime import datetime

date_1 = '24/7/2021 11:13:08.230010'
date_2 = '25/7/2021 11:14:18.333338'

date_format_str = '%d/%m/%Y %H:%M:%S.%f'

start = datetime.strptime(date_1, date_format_str)
end =   datetime.strptime(date_2, date_format_str)

# Get interval between two timstamps as timedelta object
diff = end - start

# Get interval between two timstamps in hours
diff_in_hours = diff.total_seconds() / 3600

print('Difference between two datetimes in hours:')
print(diff_in_hours)

đầu ra

Difference between two datetimes in hours:
24.019473146666666

Python Ví dụ 3. Nhận sự khác biệt giữa hai dấu thời gian tính bằng giờ

Hãy xem một ví dụ khác, trong đó cả hai dấu thời gian cách nhau hơn 2 năm,

from datetime import datetime

date_1 = '2/7/2021 21:55:12.230010'
date_2 = '24/9/2023 11:13:08.333338'

date_format_str = '%d/%m/%Y %H:%M:%S.%f'

start = datetime.strptime(date_1, date_format_str)
end =   datetime.strptime(date_2, date_format_str)

# Get interval between two timstamps as timedelta object
diff = end - start

# Get interval between two timstamps in hours
diff_in_hours = diff.total_seconds() / 3600

print('Difference between two datetimes in hours:')
print(diff_in_hours)

đầu ra

Difference between two datetimes in hours:
19525.298917591113

Ví dụ Python 4. Nhận sự khác biệt giữa hai datetimes tính bằng giờ

Nếu chúng ta có các đối tượng ngày giờ hoàn chỉnh thay vì chỉ các chuỗi dấu thời gian, trong trường hợp đó, hãy xem cách tính toán sự khác biệt giữa hai ngày giờ tính bằng giờ,

from datetime import datetime

date_1 = datetime(2021, 7, 2, 21, 55, 12)
date_2 = datetime(2021, 7, 24, 11, 13, 8)

# Get interval between two timstamps as timedelta object
diff = date_2 - date_1

# Get interval between two timstamps in hours
diff_in_hours = diff.total_seconds() / 3600

print('Difference between two datetimes in hours:')
print(diff_in_hours)

đầu ra

________số 8

Ví dụ Python 5. Nhận sự khác biệt giữa hai thời gian biểu tính bằng giờ bằng cách sử dụng gấu trúc

Giả sử chúng ta có hai dấu thời gian ở định dạng chuỗi. Chúng ta có thể chuyển đổi chúng thành đối tượng datetime bằng pandas. hàm to_datetime(). Sau đó, chúng tôi sẽ trừ các đối tượng datetime để lấy thời lượng trong datetime. đối tượng múi giờ. Sau đó, bằng cách sử dụng các thuộc tính của đối tượng timedelta, chúng tôi sẽ tìm nạp tổng số giây ở giữa hai dấu thời gian (bao gồm cả phần phân số cho đến mili giây) rồi chia số đó cho 3600 để có thời lượng hoàn chỉnh tính bằng giờ. Ví dụ,