#include <google/protobuf/util/time_util.h>
namespace google::protobuf::util
Define os utilitários para os tipos conhecidos de carimbo de data/hora e duração.
Turmas neste arquivo | |
---|---|
Funções utilitárias para carimbo de data/hora e duração. |
classe TimeUtil
#include <google/protobuf/util/time_util.h>
namespace google::protobuf::util
Funções utilitárias para carimbo de data/hora e duração.
Participantes | |
---|---|
const int64_t | kTimestampMinSeconds = = -62135596800LL Os valores mínimo/máximo de carimbo de data/hora e duração aceitos. mais… |
const int64_t | kTimestampMaxSeconds = = 253402300799LL Para "9999-12-31T23:59:59.999999999Z". |
const int64_t | kDurationMinSeconds = = -315576000000LL |
const int64_t | kDurationMaxSeconds = = 315576000000LL |
static std::string | ToString(const Timestamp & timestamp) Converte o carimbo de data/hora de/para o formato de string de data RFC 3339. mais… |
static bool | FromString(const std::string & value, Timestamp * timestamp) |
static std::string | ToString(const Duration & duration) Converte a duração em/do formato de string. mais… |
static bool | FromString(const std::string & value, Duration * timestamp) |
static Timestamp | GetCurrentTime() Recebe o horário UTC atual. |
static Timestamp | GetEpoch() Retorna a hora que representa "1970-01-01 00:00:00". |
static Duration | NanosecondsToDuration(int64_t nanos) Converte entre tipos de duração e de número inteiro. mais… |
static Duration | MicrosecondsToDuration(int64_t micros) |
static Duration | MillisecondsToDuration(int64_t millis) |
static Duration | SecondsToDuration(int64_t seconds) |
static Duration | MinutesToDuration(int64_t minutes) |
static Duration | HoursToDuration(int64_t hours) |
static int64_t | DurationToNanoseconds(const Duration & duration) O resultado ficará truncado. mais… |
static int64_t | DurationToMicroseconds(const Duration & duration) |
static int64_t | DurationToMilliseconds(const Duration & duration) |
static int64_t | DurationToSeconds(const Duration & duration) |
static int64_t | DurationToMinutes(const Duration & duration) |
static int64_t | DurationToHours(const Duration & duration) |
static Timestamp | NanosecondsToTimestamp(int64_t nanos) Cria o carimbo de data/hora com base em tipos inteiros. mais… |
static Timestamp | MicrosecondsToTimestamp(int64_t micros) |
static Timestamp | MillisecondsToTimestamp(int64_t millis) |
static Timestamp | SecondsToTimestamp(int64_t seconds) |
static int64_t | TimestampToNanoseconds(const Timestamp & timestamp) O resultado será truncado até o valor inteiro mais próximo. mais… |
static int64_t | TimestampToMicroseconds(const Timestamp & timestamp) |
static int64_t | TimestampToMilliseconds(const Timestamp & timestamp) |
static int64_t | TimestampToSeconds(const Timestamp & timestamp) |
static Timestamp | TimeTToTimestamp(time_t value) Conversão de/para outros tipos de data/hora. mais… |
static time_t | TimestampToTimeT(const Timestamp & value) |
static Timestamp | TimevalToTimestamp(const timeval & value) Conversão de/para o Timeval. |
static timeval | TimestampToTimeval(const Timestamp & value) |
static Duration | TimevalToDuration(const timeval & value) |
static timeval | DurationToTimeval(const Duration & value) |
const int64_t TimeUtil::kTimestampMinSeconds = = -62135596800LL
Os valores mínimo/máximo de carimbo de data/hora e duração aceitos.
Para "0001-01-01T00:00:00Z".
static std::string TimeUtil::ToString(
const Timestamp & timestamp)
const Timestamp & timestamp)
Converte o carimbo de data/hora de/para o formato de string de data RFC 3339.
A saída gerada sempre será Z-normalizada e usa 3, 6 ou 9 dígitos fracionários conforme necessário para representar o horário exato. Durante a análise, qualquer dígito fracionário (ou nenhum) e qualquer deslocamento são aceitos, desde que se encaixem na precisão de nanossegundos. O carimbo de data/hora só pode representar o horário de 0001-01-01T00:00:00Z a 9999-12-31T23:59:59.999999999Z. A conversão de um carimbo de data/hora fora desse intervalo é um comportamento indefinido. Consulte
Exemplo de formato gerado:
"1972-01-01T10:00:20.021Z"
Exemplo de formato aceito:
"1972-01-01T10:00:20.021-05:00"
static std::string TimeUtil::ToString(
const Duration & duration)
const Duration & duration)
Converte a duração em/do formato de string.
O formato da string contém três, seis ou nove dígitos fracionários, dependendo da precisão necessária para representar o valor exato da duração. Exemplo:
"1s", "1.010s", "1.000000100s", "-3.100s"
O intervalo que pode ser representado por duração é de -315.576.000.000 a +315.576.000.000 (em segundos).
static Duration TimeUtil::NanosecondsToDuration(
int64_t nanos)
int64_t nanos)
Converte entre tipos de duração e de número inteiro.
O comportamento será indefinido se o valor de entrada não estiver no intervalo válido de duração.
static int64_t TimeUtil::DurationToNanoseconds(
const Duration & duration)
const Duration & duration)
O resultado ficará truncado.
Por exemplo, "-1,5 s" será truncado para "-1 s" e "1,5 s" para "1 s" quando a conversão for em segundos. Comportamentos indefinidos se a duração da entrada não for válida ou o resultado exceder o intervalo do int64. Uma duração não será válida se não estiver no intervalo válido de duração ou se tiver um valor de nanos inválido (ou seja, maior que 999999999, menos de -999999999 ou tiver um sinal diferente da parte dos segundos).
static Timestamp TimeUtil::NanosecondsToTimestamp(
int64_t nanos)
int64_t nanos)
Cria o carimbo de data/hora com base em tipos inteiros.
O valor inteiro indica o tempo decorrido desde o período. O comportamento será indefinido se o valor de entrada não estiver no intervalo válido do carimbo de data/hora.
static int64_t TimeUtil::TimestampToNanoseconds(
const Timestamp & timestamp)
const Timestamp & timestamp)
O resultado será truncado até o valor inteiro mais próximo.
Por exemplo, com "1969-12-31T23:59:59.9Z", TimestampToMilliseconds() retorna -100 e TimestampToSeconds() retorna -1. Comportamentos indefinidos se a data/hora de entrada não for válida (ou seja, a parte de segundos ou nanos não estiver no intervalo válido) ou o valor de retorno não couber em int64.
static Timestamp TimeUtil::TimeTToTimestamp(
time_t value)
time_t value)
Conversão de/para outros tipos de data/hora.
Observe que esses tipos podem ter um intervalo de precisão e tempo diferente de carimbo de data/hora e duração. Ao converter para um tipo de precisão mais baixa, o valor será truncado para o valor mais próximo que pode ser representado. Se o valor estiver fora do intervalo do tipo de resultado, o valor retornado será indefinido.
Conversão de/de time_t