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

วิธีหาความต่างของเวลาด้วย Python

การคำนวณวันที่และเวลาใน Python ทำได้ง่ายมากด้วยออบเจ็กต์ timedelta เมื่อต้องการบวกหรือลบวันที่/เวลา ให้ใช้ datetime.datetime() แล้วบวกหรือลบด้วยอินสแตนซ์ของ datetime.timedelta() ออบเจ็กต์ timedelta แทนช่วงเวลา (duration) คือ ความต่างระหว่างวันที่หรือเวลาสองจุด คอนสตรัคเตอร์ของ timedelta มีลายเซ็นฟังก์ชันดังนี้

datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])

หมายเหตุ: อาร์กิวเมนต์ทั้งหมดเป็นตัวเลือกและค่าเริ่มต้นคือ 0 อาจเป็น int, long, หรือ float ได้ และอาจเป็นค่าบวกหรือลบได้ คุณสามารถอ่านเพิ่มเติมได้ที่ เอกสาร Python อย่างเป็นทางการ

ตัวอย่าง

ตัวอย่างการใช้ timedelta กับวันที่

import datetime
old_time = datetime.datetime.now()
print(old_time)
new_time = old_time - datetime.timedelta(hours=2, minutes=10)
print(new_time)

ผลลัพธ์

จะได้ผลลัพธ์ดังนี้

2018-01-04 11:09:00.694602
2018-01-04 08:59:00.694602

การคำนวณ timedelta ไม่รองรับออบเจ็กต์ datetime.time() หากต้องการใช้ offset จาก datetime.time() ที่มีอยู่ ให้ใช้ datetime.datetime.combine() เพื่อสร้างอินสแตนซ์ datetime.datetime() คำนวณเสร็จแล้ว "ดึง" เวลาออกมาอีกครั้งด้วยเมธอด .time()

การลบออบเจ็กต์ datetime สองตัวจะให้ออบเจ็กต์ timedelta ซึ่งสามารถใช้หาความต่างที่แน่นอนระหว่างสองวันเวลาได้

ตัวอย่าง

t1 = datetime.datetime.now()
t2 = datetime.datetime.now()
print(t1 - t2)
print(type(t1 - t2))

ผลลัพธ์

จะได้ผลลัพธ์ดังนี้

-1 day, 23:59:56.653627
<class 'datetime.timedelta'>