Package google.protobuf

색인

시간

Duration은 나노초 해상도에서 초 및 초수로 표시되는 부호 있는 고정 길이 기간을 나타냅니다. '일' 또는 '월'과 같은 캘린더 및 개념과는 별개입니다. 두 타임스탬프 값의 차이가 지속 시간이며 타임스탬프에서 더하거나 뺄 수 있다는 점에서 타임스탬프와 관련이 있습니다. 범위는 약 +10,000년입니다.

예 1: 의사 코드의 두 타임스탬프에서 기간을 컴퓨팅합니다.

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초 미만이고 seconds 필드는 0, 양수 또는 음수는 nanos 필드로 표시됩니다. 기간이 1초 이상인 경우 nanos 필드의 0이 아닌 값은 seconds 필드와 같은 기호여야 합니다. -999,999,999 ~ +999,999,999(포함) 사이여야 합니다.