OBSERVAÇÃO:este site foi descontinuado. O site será desativado após 31 de janeiro de 2023, e o tráfego será redirecionado para o novo site em https://protobuf.dev. Enquanto isso, as atualizações serão feitas apenas para protobuf.dev.

time_util.h

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

#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)

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)

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)

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)

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)

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)

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)

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