ดัชนี
Duration
(ข้อความ)
ระยะเวลา
ระยะเวลา แสดงช่วงเวลาความยาวคงที่แบบมีเครื่องหมาย ซึ่งแสดงเป็นจำนวนวินาทีและเศษส่วนของวินาทีที่ความละเอียดระดับนาโนวินาที ซึ่งไม่เกี่ยวข้องกับปฏิทินและแนวคิดต่างๆ เช่น "วัน" หรือ "เดือน" มันเกี่ยวข้องกับ "การประทับเวลา" ตรงที่ความแตกต่างระหว่างค่า "การประทับเวลา" 2 ค่าคือ "ระยะเวลา" และสามารถเพิ่มหรือลบออกจาก "การประทับเวลา" ได้ ช่วงจะอยู่ที่ประมาณ +-10,000 ปี
ตัวอย่างที่ 1: ระยะเวลาการประมวลผลจากการประทับเวลา 2 รายการในโค้ดเทียม
Timestamp start = ...;
Timestamp end = ...;
Duration duration = ...;
duration.seconds = end.seconds - start.seconds;
duration.nanos = end.nanos - start.nanos;
if (duration.seconds < 0 && duration.nanos > 0) {
duration.seconds += 1;
duration.nanos -= 1000000000;
} else if (duration.seconds > 0 && duration.nanos < 0) {
duration.seconds -= 1;
duration.nanos += 1000000000;
}
ตัวอย่างที่ 2: การประทับเวลาประมวลผลจากการประทับเวลา + ระยะเวลาในโค้ดเทียม
Timestamp start = ...;
Duration duration = ...;
Timestamp end = ...;
end.seconds = start.seconds + duration.seconds;
end.nanos = start.nanos + duration.nanos;
if (end.nanos < 0) {
end.seconds -= 1;
end.nanos += 1000000000;
} else if (end.nanos >= 1000000000) {
end.seconds += 1;
end.nanos -= 1000000000;
}
ชื่อช่อง | ประเภท | คำอธิบาย |
---|---|---|
seconds |
int64 |
จำนวนวินาทีที่ลงนามของช่วงเวลา ต้องมีค่าตั้งแต่ -315,576,000,000 ถึง +315,576,000,000 |
nanos |
int32 |
เศษเสี้ยววินาทีที่ลงนามที่ความละเอียดระดับนาโนวินาทีของช่วงเวลา ระยะเวลาน้อยกว่า 1 วินาทีจะแสดงด้วยช่อง 0 seconds และช่อง nanos เชิงบวกหรือลบ สำหรับระยะเวลา 1 วินาทีขึ้นไป ค่าที่ไม่ใช่ 0 สำหรับช่อง nanos ต้องเป็นเครื่องหมายเดียวกันกับช่อง seconds ต้องมีค่าตั้งแต่ -999,999,999 ถึง +999,999,999 |