Package google.protobuf

색인

소요 시간

Duration은 나노초 해상도에서 초의 수와 초의 분수로 표현되는, 부호가 있는 고정된 길이의 시간을 나타냅니다. '일' 또는 '월'과 같은 캘린더 및 개념과는 관계가 없습니다. 이는 두 타임스탬프 값의 차이가 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초의 부호 있는 분수입니다. 1초 미만의 지속 시간은 0 seconds 필드와 양수 또는 음수 nanos 필드로 표시됩니다. 1초 이상의 지속 시간인 경우 nanos 필드의 값은 0이 아닌 값으로 seconds 필드와 동일해야 합니다. 범위는 -999,999,999 ~ +999,999,999(포함)이어야 합니다.