Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình Python để tìm sự khác biệt giữa hai dấu thời gian

Giả sử chúng ta có hai thời điểm ở định dạng này "Ngày dd Thứ Hai yyyy hh:mm:ss +/- xxxx", trong đó Ngày là ngày gồm ba chữ cái có chữ cái đầu tiên được viết hoa. Mon là tên của tháng bằng ba chữ cái và cuối cùng là + hoặc - xxxx đại diện cho múi giờ, ví dụ +0530 cho biết nó nhiều hơn 5 giờ 30 phút so với GMT (các định dạng khác như dd, hh, mm, ss tự giải thích). Chúng ta phải tìm ra sự khác biệt tuyệt đối giữa hai dấu thời gian tính bằng giây.

Để giải quyết vấn đề này bằng cách sử dụng python, chúng tôi sẽ sử dụng thư viện datetime. Có một hàm được gọi là strptime (), nó sẽ chuyển đổi ngày được định dạng chuỗi thành đối tượng datetime. Có một số chỉ định định dạng như bên dưới -

  • % a cho biết ngày ở định dạng ba chữ cái
  • % d cho biết ngày ở định dạng số
  • % b cho biết tháng ở định dạng ba chữ cái
  • % Y cho biết năm ở định dạng yyyy
  • % H cho biết giờ ở định dạng hh
  • % M cho biết phút ở định dạng mm
  • % S cho biết giây ở định dạng ss
  • % z cho biết múi giờ ở định dạng +/- xxxx

Vì vậy, nếu đầu vào là t1 ="Thứ 15 ngày 15 tháng 7 năm 2021 15:10:17 +0530" t2 ="Thứ năm ngày 15 tháng 7 năm 2021 20:25:29 +0720", thì đầu ra sẽ là 12312

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • t1:=thay đổi định dạng lần đầu tiên từ chuỗi đã cho sang định dạng đã đề cập ở trên
  • t2:=thay đổi định dạng lần thứ hai từ chuỗi đã cho sang định dạng đã đề cập ở trên
  • trả về chênh lệch giữa t1 và t2 tính bằng giây

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

from datetime import datetime

def solve(t1, t2):
   t1 = datetime.strptime(t1, "%a %d %b %Y %H:%M:%S %z")
   t2 = datetime.strptime(t2, "%a %d %b %Y %H:%M:%S %z")
   return abs(int((t1-t2).total_seconds()))

t1 = "Thu 15 Jul 2021 15:10:17 +0530"
t2 = "Thu 15 Jul 2021 20:25:29 +0720"
print(solve(t1, t2))

Đầu vào

"Thu 15 Jul 2021 15:10:17 +0530", "Thu 15 Jul 2021 20:25:29 +0720"

Đầu ra

12312