142#include <string_view>
292 inline constexpr std::strong_ordering operator<=>( const
DateTimeOffset& other ) const noexcept;
377 [[nodiscard]] inline constexpr std::int64_t
ticks() const noexcept;
384 [[nodiscard]] inline constexpr std::int64_t
utcTicks() const noexcept;
391 [[nodiscard]] inline std::int32_t
year() const noexcept;
398 [[nodiscard]] inline std::int32_t
month() const noexcept;
405 [[nodiscard]] inline std::int32_t
day() const noexcept;
412 [[nodiscard]] inline std::int32_t
hour() const noexcept;
419 [[nodiscard]] inline std::int32_t
minute() const noexcept;
426 [[nodiscard]] inline std::int32_t
second() const noexcept;
447 [[nodiscard]] inline std::int32_t
nanosecond() const noexcept;
454 [[nodiscard]] inline std::int32_t
dayOfWeek() const noexcept;
461 [[nodiscard]] inline std::int32_t
dayOfYear() const noexcept;
780#include "nfx/detail/datetime/DateTimeOffset.inl"
High-precision time interval representation with 100-nanosecond tick precision.
Cross-platform DateTime type with 100-nanosecond precision.
DateTime localDateTime() const noexcept
Get local DateTime equivalent.
DateTimeOffset addDays(double days) const noexcept
Add days.
std::int32_t hour() const noexcept
Get hour component (0-23).
std::int32_t day() const noexcept
Get day component (1-31).
DateTimeOffset add(const TimeSpan &value) const noexcept
Add time span.
static DateTimeOffset max() noexcept
Get maximum DateTimeOffset value.
static DateTimeOffset utcNow() noexcept
Get current UTC time (offset = 00:00:00).
constexpr std::int64_t utcTicks() const noexcept
Get UTC tick count.
DateTimeOffset toUniversalTime() const noexcept
Convert to UTC (offset = 00:00:00).
std::int32_t dayOfYear() const noexcept
Get day of year (1-366).
std::int32_t dayOfWeek() const noexcept
Get day of week (0=Sunday, 6=Saturday).
bool equals(const DateTimeOffset &other) const noexcept
Check if this DateTimeOffset equals another (same UTC time).
std::int32_t nanosecond() const noexcept
Get nanosecond component (0-900, in hundreds).
DateTimeOffset toOffset(const TimeSpan &newOffset) const noexcept
Convert to specified offset.
bool equalsExact(const DateTimeOffset &other) const noexcept
Check if this DateTimeOffset equals another exactly (same local time and offset).
TimeSpan subtract(const DateTimeOffset &value) const noexcept
Subtract DateTimeOffset and return TimeSpan.
DateTime utcDateTime() const noexcept
Get UTC DateTime equivalent.
bool isValid() const noexcept
Check if this DateTimeOffset is valid.
DateTimeOffset addSeconds(double seconds) const noexcept
Add seconds.
TimeSpan timeOfDay() const noexcept
Get time of day as duration since midnight.
static bool fromString(std::string_view iso8601String, DateTimeOffset &result) noexcept
Parse ISO 8601 string with timezone offset safely without throwing exceptions.
static DateTimeOffset today() noexcept
Get current local date (time set to 00:00:00).
DateTimeOffset date() const noexcept
Get date component (time set to 00:00:00).
DateTimeOffset addMinutes(double minutes) const noexcept
Add minutes.
std::int64_t toEpochSeconds() const noexcept
Convert to Epoch timestamp (seconds since epoch).
constexpr DateTimeOffset() noexcept
Default constructor (minimum DateTimeOffset value with zero offset).
static DateTimeOffset min() noexcept
Get minimum DateTimeOffset value.
constexpr std::int64_t ticks() const noexcept
Get tick count (100-nanosecond units of local time).
static DateTimeOffset fromEpochMilliseconds(std::int64_t milliseconds) noexcept
Create from Epoch timestamp milliseconds with UTC offset.
static DateTimeOffset fromFILETIME(std::int64_t FILETIME) noexcept
Create DateTimeOffset from Windows FILETIME format.
std::int32_t totalOffsetMinutes() const noexcept
Get offset in total minutes.
std::int32_t microsecond() const noexcept
Get microsecond component (0-999).
static DateTimeOffset fromEpochSeconds(std::int64_t seconds) noexcept
Create from Epoch timestamp seconds with UTC offset.
static DateTimeOffset epoch() noexcept
Get Unix epoch DateTimeOffset (January 1, 1970 00:00:00 UTC).
std::int32_t year() const noexcept
Get year component (1-9999).
static DateTimeOffset now() noexcept
Get current local time with system timezone offset.
std::int32_t millisecond() const noexcept
Get millisecond component (0-999).
constexpr const TimeSpan & offset() const noexcept
Get the offset from UTC.
DateTimeOffset addHours(double hours) const noexcept
Add hours.
DateTimeOffset addMilliseconds(double milliseconds) const noexcept
Add milliseconds.
constexpr const DateTime & dateTime() const noexcept
Get the DateTime component (local time).
DateTimeOffset addTicks(std::int64_t ticks) const noexcept
Add ticks.
DateTimeOffset addYears(std::int32_t years) const noexcept
Add years.
DateTimeOffset toLocalTime() const noexcept
Convert to local time (system timezone).
std::int32_t month() const noexcept
Get month component (1-12).
std::int64_t toEpochMilliseconds() const noexcept
Convert to Epoch timestamp (milliseconds since epoch).
std::int64_t toFILETIME() const noexcept
Convert to Windows FILETIME format.
std::int32_t second() const noexcept
Get second component (0-59).
DateTimeOffset addMonths(std::int32_t months) const noexcept
Add months.
std::string toString() const
Convert to ISO 8601 string with offset.
std::string toIso8601Extended() const
Convert to ISO 8601 extended format with full precision and offset.
std::int32_t minute() const noexcept
Get minute component (0-59).
Represents a time interval in 100-nanosecond ticks.
Cross-platform DateTime class with ISO 8601 support.