Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม Python เพื่อค้นหาความแตกต่างระหว่างการประทับเวลาสองครั้ง


สมมติว่าเรามีสองครั้งในรูปแบบนี้ "วัน dd Mon yyyy hh:mm:ss +/-xxxx" โดยที่ Day คือวันที่เป็นตัวอักษรสามตัวที่มีตัวอักษรตัวแรกเป็นตัวพิมพ์ใหญ่ จันทร์ คือชื่อเดือนด้วยตัวอักษรสามตัว และสุดท้าย + หรือ - xxxx แทนเขตเวลา เช่น +0530 แสดงว่ามากกว่า GMT 5 ชั่วโมง 30 นาที (รูปแบบอื่นๆ เช่น dd, hh, mm, ss เป็นตัวอธิบาย) เราต้องหาความแตกต่างที่แน่นอนระหว่างการประทับเวลาสองครั้งในหน่วยวินาที

เพื่อแก้ปัญหานี้โดยใช้ python เราจะใช้ไลบรารี datetime มีฟังก์ชันที่เรียกว่า strptime() ซึ่งจะแปลงวันที่ที่จัดรูปแบบสตริงเป็นอ็อบเจกต์ datetime มีตัวระบุรูปแบบอยู่สองสามตัวดังด้านล่าง -

  • %a ระบุวันในรูปแบบตัวอักษรสามตัว
  • %d ระบุวันในรูปแบบตัวเลข
  • %b หมายถึงเดือนในรูปแบบตัวอักษรสามตัว
  • %Y หมายถึงปีในรูปแบบ ปปปป
  • %H ระบุชั่วโมงในรูปแบบ hh
  • %M หมายถึงนาทีในรูปแบบมิลลิเมตร
  • %S ระบุวินาทีในรูปแบบ ss
  • %z ระบุเขตเวลาในรูปแบบ +/- xxxx

ดังนั้น หากอินพุตเป็นแบบ t1 ="Thu 15 Jul 2021 15:10:17 +0530" t2 ="Thu 15 Jul 2021 20:25:29 +0720" ผลลัพธ์จะเป็น 12312

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • t1 :=เปลี่ยนรูปแบบครั้งแรกจากสตริงที่กำหนดเป็นรูปแบบที่กล่าวถึงข้างต้น
  • t2 :=เปลี่ยนรูปแบบครั้งที่สองจากสตริงที่กำหนดเป็นรูปแบบที่กล่าวถึงข้างต้น
  • ส่งคืนความแตกต่างระหว่าง t1 และ t2 ในไม่กี่วินาที

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

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