Package google.protobuf

ดัชนี

ระยะเวลา

ระยะเวลาหมายถึงช่วงเวลาที่ยาวและคงที่ที่ลงนามแล้ว ซึ่งแสดงเป็นวินาทีและเสี้ยววินาทีที่ความละเอียดนาโนวินาที ไม่เกี่ยวข้องกับปฏิทินและแนวคิดต่างๆ เช่น "วัน" หรือ "เดือน" ค่านี้จะเกี่ยวข้องกับการประทับเวลาโดยการประทับเวลาระหว่างค่า "การประทับเวลา" 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: Compute Timestamp จากการประทับเวลา + ระยะเวลาในโค้ดเทียม

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 วินาทีจะแสดงด้วยช่อง seconds จํานวน 0 ช่องและช่อง nanos เป็นบวกหรือลบ สําหรับระยะเวลา 1 วินาทีขึ้นไป ค่าที่ไม่ใช่ 0 สําหรับช่อง nanos ต้องเป็นเครื่องหมายเดียวกับช่อง seconds ต้องมีค่าตั้งแต่ -999,999,999 ถึง +999,999,999