Go to the documentation of this file.
62 #ifndef ABSL_TIME_TIME_H_
63 #define ABSL_TIME_TIME_H_
65 #if !defined(_MSC_VER)
83 #include <type_traits>
86 #include "absl/base/macros.h"
87 #include "absl/strings/string_view.h"
88 #include "absl/time/civil_time.h"
89 #include "absl/time/internal/cctz/include/cctz/time_zone.h"
98 namespace time_internal {
109 template <std::
intmax_t N>
113 template <
typename T>
116 template <
typename T>
165 #if !defined(__clang__) && defined(_MSC_VER) && _MSC_VER < 1930
185 template <
typename T, time_
internal::EnableIfIntegral<T> = 0>
191 template <
typename T, time_
internal::EnableIfIntegral<T> = 0>
197 template <
typename T, time_
internal::EnableIfFloat<T> = 0>
203 template <
typename T, time_
internal::EnableIfFloat<T> = 0>
209 template <
typename H>
211 return H::combine(
std::move(h), d.rep_hi_, d.rep_lo_);
239 template <
typename T>
243 template <
typename T>
247 template <
typename T>
406 template <
typename T, time_
internal::EnableIfIntegral<T> = 0>
410 template <
typename T, time_
internal::EnableIfIntegral<T> = 0>
414 template <
typename T, time_
internal::EnableIfIntegral<T> = 0>
418 template <
typename T, time_
internal::EnableIfIntegral<T> = 0>
422 template <
typename T, time_
internal::EnableIfIntegral<T> = 0>
426 template <
typename T, time_
internal::EnableIfIntegral<T> = 0>
440 template <
typename T, time_
internal::EnableIfFloat<T> = 0>
444 template <
typename T, time_
internal::EnableIfFloat<T> = 0>
448 template <
typename T, time_
internal::EnableIfFloat<T> = 0>
452 template <
typename T, time_
internal::EnableIfFloat<T> = 0>
466 template <
typename T, time_
internal::EnableIfFloat<T> = 0>
470 template <
typename T, time_
internal::EnableIfFloat<T> = 0>
655 constexpr
Time() =
default;
658 constexpr
Time(
const Time& t) =
default;
659 Time& operator=(
const Time& t) =
default;
709 template <
typename H>
1055 template <
typename H>
1064 return os << tz.
name();
1076 if (
name ==
"localtime") {
1159 const auto ti = tz.
At(ct);
1243 Time
FromTM(
const struct tm&
tm, TimeZone tz);
1249 struct tm ToTM(Time t, TimeZone tz);
1387 namespace time_internal {
1443 return (
n < 0) ? -(
n + 1) : (-
n) - 1;
1453 template <std::
intmax_t N>
1455 static_assert(0 <
N &&
N <= 1000 * 1000 * 1000,
"Unsupported ratio");
1475 template <
typename T>
1479 template <
typename T>
1485 template <
typename Rep,
typename Period>
1487 static_assert(IsValidRep64<Rep>(0),
"duration::rep is invalid");
1491 template <
typename Ratio>
1518 template <
typename T>
1520 using Rep =
typename T::rep;
1521 using Period =
typename T::period;
1522 static_assert(IsValidRep64<Rep>(0),
"duration::rep is invalid");
1525 const auto v =
ToInt64(d, Period{});
1620 #endif // ABSL_TIME_TIME_H_
constexpr int64_t kTicksPerNanosecond
struct tm ToTM(absl::Time t, absl::TimeZone tz)
std::chrono::microseconds ToChronoMicroseconds(Duration d)
std::chrono::duration< std::int_fast64_t > seconds
constexpr Time FromTimeT(time_t t)
Time FromChrono(const std::chrono::system_clock::time_point &tp)
ABSL_NAMESPACE_BEGIN bool ParseFlag(absl::string_view input, T *dst, std::string *error)
int64_t ToUnixNanos(Time t)
friend std::ostream & operator<<(std::ostream &os, TimeZone tz)
std::chrono::milliseconds ToChronoMilliseconds(Duration d)
typename std::enable_if< std::is_integral< T >::value||std::is_enum< T >::value, int >::type EnableIfIntegral
constexpr Time(Duration rep)
constexpr Duration ZeroDuration()
constexpr Duration MakeDuration(int64_t hi, uint32_t lo)
constexpr int64_t kTicksPerSecond
absl::Time FromUniversal(int64_t universal)
std::chrono::time_point< std::chrono::system_clock, D > time_point
ABSL_NAMESPACE_BEGIN std::ostream & operator<<(std::ostream &os, absl::LogSeverity s)
Duration MakePosDoubleDuration(double n)
constexpr uint128 operator-(uint128 lhs, uint128 rhs)
constexpr Duration Nanoseconds(T n)
constexpr Period Duration FromChrono(const std::chrono::duration< Rep, Period > &d)
int64_t ToInt64Minutes(Duration d)
constexpr Time FromUnixMillis(int64_t ms)
time_internal::cctz::detail::civil_time< time_internal::month_tag > CivilMonth
constexpr Time FromUnixNanos(int64_t ns)
time_internal::cctz::detail::civil_time< time_internal::hour_tag > CivilHour
Time & operator-=(Duration d)
std::string UnparseFlag(const T &v)
bool LoadTimeZone(absl::string_view name, TimeZone *tz)
int64_t ToInt64Microseconds(Duration d)
time_internal::cctz::time_zone cz_
Duration & operator%=(Duration rhs)
#define ABSL_NAMESPACE_END
bool load_time_zone(const std::string &name, time_zone *tz)
time_internal::cctz::detail::civil_time< time_internal::year_tag > CivilYear
bool operator>(const absl::InlinedVector< T, N, A > &a, const absl::InlinedVector< T, N, A > &b)
time_internal::cctz::detail::civil_time< time_internal::minute_tag > CivilMinute
absl::TimeConversion ConvertDateTime(int64_t year, int mon, int day, int hour, int min, int sec, TimeZone tz)
#define T(upbtypeconst, upbtype, ctype, default_value)
#define ABSL_ATTRIBUTE_PURE_FUNCTION
std::chrono::hours ToChronoHours(Duration d)
double ToDoubleHours(Duration d)
int64_t ToUnixMillis(Time t)
int64_t ToUnixMicros(Time t)
uint128 operator%(uint128 lhs, uint128 rhs)
std::string FormatTime(absl::string_view format, absl::Time t, absl::TimeZone tz)
bool AbslParseFlag(absl::string_view text, absl::LogSeverity *dst, std::string *err)
int64_t ToInt64Milliseconds(Duration d)
uint128 operator*(uint128 lhs, uint128 rhs)
Duration Floor(const Duration d, const Duration unit)
constexpr bool IsInfiniteDuration(Duration d)
CivilHour ToCivilHour(Time t, TimeZone tz)
constexpr Duration Milliseconds(T n)
constexpr Duration FromInt64(int64_t v, std::ratio< 1, N >)
CivilInfo At(Time t) const
#define ABSL_NAMESPACE_BEGIN
constexpr Duration Microseconds(T n)
constexpr auto IsValidRep64(int) -> decltype(int64_t
Time & operator+=(Duration d)
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
std::chrono::minutes ToChronoMinutes(Duration d)
TimeZone FixedTimeZone(int seconds)
Duration & operator/=(int64_t r)
double ToDoubleMilliseconds(Duration d)
timeval ToTimeval(Duration d)
int64_t ToUniversal(absl::Time t)
CivilDay ToCivilDay(Time t, TimeZone tz)
bool ParseTime(absl::string_view format, absl::string_view input, absl::Time *time, std::string *err)
T ToChronoDuration(Duration d)
ABSL_NAMESPACE_BEGIN const ABSL_DLL char RFC3339_full[]
time_zone utc_time_zone()
Duration & operator*=(int64_t r)
static const char *const mon[12]
double ToDoubleSeconds(Duration d)
bool operator==(const absl::InlinedVector< T, N, A > &a, const absl::InlinedVector< T, N, A > &b)
constexpr Time UnixEpoch()
std::string AbslUnparseFlag(absl::LogSeverity v)
time_internal::cctz::detail::civil_time< time_internal::day_tag > CivilDay
double FDivDuration(Duration num, Duration den)
bool ParseDuration(absl::string_view dur_sv, Duration *d)
time_zone fixed_time_zone(const seconds &offset)
constexpr Time FromUnixMicros(int64_t us)
absl::Time FromTM(const struct tm &tm, absl::TimeZone tz)
friend H AbslHashValue(H h, TimeZone tz)
constexpr Time FromUnixSeconds(int64_t s)
std::string FormatDuration(Duration d)
absl::Time FromUDate(double udate)
bool operator!=(const absl::InlinedVector< T, N, A > &a, const absl::InlinedVector< T, N, A > &b)
const ABSL_DLL char RFC1123_full[]
Duration & operator*=(T r)
std::chrono::seconds ToChronoSeconds(Duration d)
friend bool operator==(TimeZone a, TimeZone b)
friend bool operator!=(TimeZone a, TimeZone b)
constexpr Duration Seconds(T n)
int64_t ToInt64(Duration d, Ratio)
constexpr Duration(int64_t hi, uint32_t lo)
typename std::enable_if< std::is_floating_point< T >::value, int >::type EnableIfFloat
constexpr Duration ToUnixDuration(Time t)
timespec ToTimespec(Duration d)
Time FromDateTime(int64_t year, int mon, int day, int hour, int min, int sec, TimeZone tz)
constexpr Duration OppositeInfinity(Duration d)
constexpr uint128 operator+(uint128 lhs, uint128 rhs)
bool operator>=(const absl::InlinedVector< T, N, A > &a, const absl::InlinedVector< T, N, A > &b)
absl::Time TimeFromTimespec(timespec ts)
Duration & operator/=(T r)
bool operator<=(const absl::InlinedVector< T, N, A > &a, const absl::InlinedVector< T, N, A > &b)
friend H AbslHashValue(H h, Duration d)
constexpr Duration Hours(T n)
int64_t IDivDuration(bool satq, const Duration num, const Duration den, Duration *rem)
uint128 operator/(uint128 lhs, uint128 rhs)
int64_t ToInt64Hours(Duration d)
Time FromCivil(CivilSecond ct, TimeZone tz)
CivilMinute ToCivilMinute(Time t, TimeZone tz)
int64_t IDivDuration(Duration num, Duration den, Duration *rem)
const ABSL_DLL char RFC3339_sec[]
Duration DurationFromTimeval(timeval tv)
constexpr Time UniversalEpoch()
CivilMonth ToCivilMonth(Time t, TimeZone tz)
int64_t ToUnixSeconds(Time t)
double ToDoubleMicroseconds(Duration d)
Duration & operator-=(Duration d)
constexpr Time InfinitePast()
friend H AbslHashValue(H h, Time t)
constexpr Duration Minutes(T n)
Duration Ceil(const Duration d, const Duration unit)
constexpr Duration MakeNormalizedDuration(int64_t sec, int64_t ticks)
Duration AbsDuration(Duration d)
constexpr int64_t GetRepHi(Duration d)
std::chrono::nanoseconds ToChronoNanoseconds(Duration d)
const ABSL_DLL char RFC1123_no_wday[]
Duration & operator=(const Duration &d)=default
constexpr uint32_t GetRepLo(Duration d)
double ToDoubleNanoseconds(Duration d)
std::chrono::system_clock::time_point ToChronoTime(absl::Time t)
time_zone local_time_zone()
Duration Trunc(Duration d, Duration unit)
constexpr Time FromUnixDuration(Duration d)
absl::Time TimeFromTimeval(timeval tv)
ABSL_DEPRECATED("absl::RegisterSymbolizer() is deprecated and will be removed " "on or after 2023-05-01") void RegisterSymbolizer(bool(*fn)(const void *pc
bool operator<(const absl::InlinedVector< T, N, A > &a, const absl::InlinedVector< T, N, A > &b)
Duration & operator+=(Duration d)
constexpr Duration InfiniteDuration()
constexpr int64_t NegateAndSubtractOne(int64_t n)
TimeZone(time_internal::cctz::time_zone tz)
CivilSecond ToCivilSecond(Time t, TimeZone tz)
Duration DurationFromTimespec(timespec ts)
constexpr Time InfiniteFuture()
CivilYear ToCivilYear(Time t, TimeZone tz)
static unsigned long ticks
int64_t ToInt64Nanoseconds(Duration d)
double ToDoubleMinutes(Duration d)
int64_t ToInt64Seconds(Duration d)
grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:36