Go to the documentation of this file.
34 #include "absl/time/time.h"
44 #include "absl/time/internal/cctz/include/cctz/civil_time.h"
45 #include "absl/time/internal/cctz/include/cctz/time_zone.h"
55 return std::chrono::time_point_cast<cctz::seconds>(
56 std::chrono::system_clock::from_time_t(0));
144 bool* normalized =
nullptr) {
150 if (normalized) *normalized =
true;
157 if (normalized) *normalized =
true;
168 case cctz::weekday::monday:
170 case cctz::weekday::tuesday:
172 case cctz::weekday::wednesday:
174 case cctz::weekday::thursday:
176 case cctz::weekday::friday:
178 case cctz::weekday::saturday:
180 case cctz::weekday::sunday:
189 cctz::time_zone::civil_transition* trans)
const,
193 cctz::time_zone::civil_transition tr;
194 if (!(tz.*find_transition)(tp, &tr))
return false;
212 const auto cs = al.cs;
247 1000 * 1000 * 1000) +
308 ts.tv_nsec = 1000 * 1000 * 1000 - 1;
320 if (tv.
tv_sec != ts.tv_sec) {
330 tv.
tv_usec =
static_cast<int>(ts.tv_nsec / 1000);
336 tp - std::chrono::system_clock::from_time_t(0)));
340 using D = std::chrono::system_clock::duration;
343 return std::chrono::system_clock::from_time_t(0) +
344 time_internal::ToChronoDuration<D>(d);
374 case cctz::time_zone::civil_lookup::UNIQUE:
377 case cctz::time_zone::civil_lookup::SKIPPED:
380 case cctz::time_zone::civil_lookup::REPEATED:
409 const auto ti = tz.
At(
cs);
427 if (year !=
cs.year() ||
mon !=
cs.month() || day !=
cs.day() ||
428 hour !=
cs.hour() ||
min !=
cs.minute() || sec !=
cs.second()) {
439 int tm_mon =
tm.tm_mon;
445 tm.tm_hour,
tm.tm_min,
tm.tm_sec));
446 return tm.tm_isdst == 0 ?
ti.post :
ti.pre;
452 const auto ci = tz.At(t);
453 const auto&
cs = ci.cs;
454 tm.tm_sec =
cs.second();
455 tm.tm_min =
cs.minute();
456 tm.tm_hour =
cs.hour();
457 tm.tm_mday =
cs.day();
458 tm.tm_mon =
cs.month() - 1;
467 tm.tm_year =
static_cast<int>(
cs.year() - 1900);
471 case Weekday::sunday:
474 case Weekday::monday:
477 case Weekday::tuesday:
480 case Weekday::wednesday:
483 case Weekday::thursday:
486 case Weekday::friday:
489 case Weekday::saturday:
494 tm.tm_isdst = ci.is_dst ? 1 : 0;
struct tm ToTM(absl::Time t, absl::TimeZone tz)
std::chrono::duration< std::int_fast64_t > seconds
Time FromChrono(const std::chrono::system_clock::time_point &tp)
bool FindTransition(const cctz::time_zone &tz, bool(cctz::time_zone::*find_transition)(const cctz::time_point< cctz::seconds > &tp, cctz::time_zone::civil_transition *trans) const, Time t, TimeZone::CivilTransition *trans)
int64_t ToUnixNanos(Time t)
constexpr Duration ZeroDuration()
constexpr Duration MakeDuration(int64_t hi, uint32_t lo)
detail::civil_day civil_day
absl::Time FromUniversal(int64_t universal)
absl::Time::Breakdown InfinitePastBreakdown()
CONSTEXPR_F weekday get_weekday(const civil_second &cs) noexcept
std::chrono::time_point< std::chrono::system_clock, D > time_point
constexpr Duration Nanoseconds(T n)
constexpr Period Duration FromChrono(const std::chrono::duration< Rep, Period > &d)
CONSTEXPR_F int get_yearday(const civil_second &cs) noexcept
int MapWeekday(const cctz::weekday &wd)
time_internal::cctz::time_zone cz_
absl::Time::Breakdown InfiniteFutureBreakdown()
#define ABSL_NAMESPACE_END
bool PrevTransition(Time t, CivilTransition *trans) const
absl::TimeConversion ConvertDateTime(int64_t year, int mon, int day, int hour, int min, int sec, TimeZone tz)
int64_t ToUnixMillis(Time t)
int64_t ToUnixMicros(Time t)
Duration Floor(const Duration d, const Duration unit)
constexpr bool IsInfiniteDuration(Duration d)
constexpr Duration Milliseconds(T n)
CivilInfo At(Time t) const
#define ABSL_NAMESPACE_BEGIN
constexpr Duration Microseconds(T n)
static CONSTEXPR_F civil_time() min()
timeval ToTimeval(Duration d)
int64_t ToUniversal(absl::Time t)
time_internal::cctz::year_t civil_year_t
static const char *const mon[12]
double FDivDuration(Duration num, Duration den)
Weekday GetWeekday(CivilSecond cs)
absl::Time FromTM(const struct tm &tm, absl::TimeZone tz)
absl::Time FromUDate(double udate)
static CONSTEXPR_F civil_time() max()
int64_t FloorToUnit(absl::Duration d, absl::Duration unit)
bool next_transition(const time_point< seconds > &tp, civil_transition *trans) const
Time MakeTimeWithOverflow(const cctz::time_point< cctz::seconds > &sec, const cctz::civil_second &cs, const cctz::time_zone &tz, bool *normalized=nullptr)
constexpr Duration ToUnixDuration(Time t)
timespec ToTimespec(Duration d)
absl::TimeZone::CivilInfo InfinitePastCivilInfo()
absl::Time TimeFromTimespec(timespec ts)
Breakdown In(TimeZone tz) const
bool NextTransition(Time t, CivilTransition *trans) const
int64_t IDivDuration(Duration num, Duration den, Duration *rem)
int GetYearDay(CivilSecond cs)
Duration DurationFromTimeval(timeval tv)
constexpr Time UniversalEpoch()
bool prev_transition(const time_point< seconds > &tp, civil_transition *trans) const
int64_t ToUnixSeconds(Time t)
constexpr Time InfinitePast()
constexpr int64_t GetRepHi(Duration d)
TimeConversion InfinitePastTimeConversion()
constexpr uint32_t GetRepLo(Duration d)
std::chrono::system_clock::time_point ToChronoTime(absl::Time t)
cctz::time_point< cctz::seconds > unix_epoch()
absl::TimeConversion InfiniteFutureTimeConversion()
constexpr Time FromUnixDuration(Duration d)
absl::Time TimeFromTimeval(timeval tv)
absl::TimeZone::CivilInfo InfiniteFutureCivilInfo()
constexpr Duration InfiniteDuration()
time_internal::cctz::detail::civil_time< time_internal::second_tag > CivilSecond
Duration DurationFromTimespec(timespec ts)
constexpr Time InfiniteFuture()
absolute_lookup lookup(const time_point< seconds > &tp) const
grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:36