สมมติว่าเรามีเวลาสองค่าในรูปแบบ "Day dd Mon yyyy hh:mm:ss +/-xxxx" โดย Day คือชื่อวัน 3 ตัวอักษรตัวแรกพิมพ์ใหญ่ Mon คือชื่อเดือน 3 ตัวอักษร และ + หรือ - xxxx แทนโซนเวลา เช่น +0530 หมายถึงมากกว่า GMT 5 ชั่วโมง 30 นาที เราต้องหาความต่างสัมบูรณ์ระหว่างสอง timestamp ในหน่วยวินาที
ใน Python เราใช้ไลบรารี datetime มีฟังก์ชัน strptime() แปลงสตริงวันที่เป็นอ็อบเจ็กต์ datetime รูปแบบ format specifiers:
- %a: วัน 3 ตัวอักษร
- %d: วันตัวเลข
- %b: เดือน 3 ตัวอักษร
- %Y: ปี 4 หลัก
- %H: ชั่วโมง
- %M: นาที
- %S: วินาที
- %z: โซนเวลา +/-xxxx
ตัวอย่างเช่น t1 = "Thu 15 Jul 2021 15:10:17 +0530" t2 = "Thu 15 Jul 2021 20:25:29 +0720" ผลลัพธ์ = 12312 วินาที
ตัวอย่างโค้ด
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))
อินพุต
"Thu 15 Jul 2021 15:10:17 +0530", "Thu 15 Jul 2021 20:25:29 +0720"
เอาต์พุต
12312