Java Duration.between: วัดเวลาที่เหลือถึงเดดไลน์อย่างตรงไปตรงมา
น้องกายEngineering
เวลาผมทำ SLA หรือคูลดาวน์ในเซอร์วิส อยากได้ตัวเลข “เหลือกี่วินาที” โดยไม่คำนวณ epoch เองครับ
Duration.between(start, end) คืนระยะเวลาระหว่างสอง Temporal ถ้าย้อนเวลากลับจะได้ค่าติดลบ — เรียก abs() ถ้าต้องการความยาวบวกเสมอ
import java.time.Duration;
import java.time.Instant;
public class Main {
public static void main(String[] args) {
Instant start = Instant.parse("2026-09-17T06:00:00Z");
Instant deadline = Instant.parse("2026-09-17T06:05:00Z");
Duration left = Duration.between(start, deadline);
assert left.toMinutes() == 5;
assert left.getSeconds() == 300;
System.out.println("duration tests passed");
}
}
ใช้คู่กับ Instant.now() เพื่อเช็กว่าเลยเดดไลน์หรือยัง (isNegative())
Recap
- อ่าน Duration.between
- เก็บเดดไลน์เป็น
Instantไม่ใช่สตริงลอย ๆ - เช็ก
isNegative()เมื่อเลยกำหนด - อย่าผสม
LocalDateTimeคนละโซนโดยไม่แปลง