213 template<
typename clock_t,
typename duration_t = clock_t::duration>
214 date_time(
const std::chrono::time_point<clock_t, duration_t>& time_point) {
215 *
this =
from_time_t(std::chrono::system_clock::to_time_t(std::chrono::system_clock::now() + std::chrono::duration_cast<std::chrono::system_clock::duration>(time_point - clock_t::now())),
date_time_kind::local);
222 template<
typename clock_t,
typename duration_t = clock_t::duration>
224 *
this =
from_time_t(std::chrono::system_clock::to_time_t(std::chrono::system_clock::now() + std::chrono::duration_cast<std::chrono::system_clock::duration>(time_point - clock_t::now())),
kind);
639 [[nodiscard]] auto
equals(const
object& obj) const noexcept ->
bool override;
1039 [[nodiscard]] auto
to_tm() const -> std::tm;
1384 [[nodiscard]] static auto try_parse_exact(const
xtd::
string&
text, const
xtd::
string&
format,
date_time& result) noexcept ->
bool;
1386 [[nodiscard]] static auto try_parse_exact(const
xtd::
string&
text, const
xtd::
array<
xtd::
string>& formats,
date_time& result) noexcept ->
bool;
1406 friend auto operator << (std::ostream& os, const
date_time& value) -> std::ostream& {
return os << value.to_string();}
1411 [[nodiscard]]
auto utc_offset() const ->
xtd::
ticks;
1414 [[nodiscard]] static auto standard_format_to_custom_format(
char standard_format, const
xtd::
globalization::culture_info& culture) noexcept ->
xtd::
string;
1416 [[nodiscard]] auto to_string_put_time(const
xtd::
string&
format, const
xtd::
globalization::culture_info& culture) const ->
xtd::
string;
1417 [[nodiscard]] auto to_string_standard(
char format, const
xtd::
globalization::culture_info& culture) const ->
xtd::
string;
1420 date_time_kind kind_ {date_time_kind::unspecified};
1428#if defined(__xtd__cpp_lib_format)
1430struct std::formatter<xtd::date_time> : std::formatter<std::string> {
1431 template<typename format_context_t>
1432 constexpr auto parse(format_context_t& ctx) {
1433 auto iterator = ctx.begin();
1434 for (; iterator != ctx.end() && *iterator != '}'; ++iterator)
1435 format_value += *iterator;
1439 template<typename object_t, typename format_context_t>
1440 auto format(const object_t& obj, format_context_t& ctx) const {return std::format_to(ctx.out(), "{}", std::string {obj.to_string(format_value)});}
1443 std::string format_value;
Contains std::chrono::days, std::chrono::weeks, std::chrono::months and std::chrono::years duration t...
Provides methods for creating, manipulating, searching, and sorting arrays, thereby serving as the ba...
Definition array.hpp:64
Represents an instant in time, typically expressed as a date and time of day.
Definition date_time.hpp:83
auto add_years(xtd::int32 value) const -> date_time
Returns a new xtd::date_time that adds the specified number of years to the value of this instance.
date_time(xtd::uint32 year, xtd::uint32 month, xtd::uint32 day, xtd::uint32 hour, xtd::uint32 minute, xtd::uint32 second, xtd::date_time_kind kind)
Initializes a new instance of the xtd::date_time structure to the specified year, month,...
auto get_hash_code() const noexcept -> xtd::size override
Serves as a hash function for a particular type.
auto hour() const noexcept -> xtd::uint32
Gets the hour component of the date represented by this instance.
auto month() const noexcept -> xtd::uint32
Gets the month component of the date represented by this instance.
date_time(xtd::uint32 year, xtd::uint32 month, xtd::uint32 day, xtd::uint32 hour, xtd::uint32 minute, xtd::uint32 second, xtd::uint32 millisecond)
Initializes a new instance of the xtd::date_time structure to the specified year, month,...
static auto now() noexcept -> date_time
Gets a xtd::date_time object that is set to the current date and time on this computer,...
static const date_time min_value
Represents the smallest possible value of xtd::date_time. This field is read-only.
Definition date_time.hpp:105
auto to_universal_time() const -> date_time
Converts the value of the current xtd::date_time object to Coordinated Universal Time (UTC).
auto date() const noexcept -> date_time
Gets the date component of this instance.
auto day_of_week() const noexcept -> xtd::day_of_week
Gets the day of the week represented by this instance.
auto day_of_year() const noexcept -> xtd::uint32
Gets the day of the year represented by this instance.
auto to_short_date_string() const -> xtd::string
Converts the value of the current xtd::date_time object to its equivalent short date string represent...
auto add_months(xtd::int32 months) const -> date_time
Returns a new xtd::date_time that adds the specified number of months to the value of this instance.
auto to_long_date_string() const -> xtd::string
Converts the value of the current xtd::date_time object to its equivalent long date string representa...
date_time(xtd::ticks ticks, xtd::date_time_kind kind)
Initializes a new instance of the xtd::date_time structure to a specified number of ticks and to Coor...
static auto from_file_time_utc(xtd::int64 file_time) -> date_time
Converts the specified Windows file time to an equivalent UTC time.
auto compare_to(const date_time &value) const noexcept -> xtd::int32 override
Compares the current instance with another object of the same type.
date_time(xtd::uint32 year, xtd::uint32 month, xtd::uint32 day, xtd::uint32 hour, xtd::uint32 minute, xtd::uint32 second)
Initializes a new instance of the xttd::date_time structure to the specified year,...
auto to_file_time_utc() const -> xtd::int64
Converts the value of the current xtd::date_time object to a Windows file time.
static auto from_duration(const xtd::time_span &value) -> date_time
Converts the specified xtd::time_span to an equivalent unspecified time.
static auto today() noexcept -> date_time
Gets the current date.
static auto specify_kind(const date_time &value, xtd::date_time_kind kind) -> date_time
Creates a new xtd::date_time object that has the same number of ticks as the specified xtd::date_time...
auto add_minutes(double value) const -> date_time
Returns a new xtd::date_time that adds the specified number of minutes to the value of this instance.
static auto utc_now() noexcept -> date_time
Gets a xtd::date_time object that is set to the current date and time on this computer,...
date_time(const std::chrono::time_point< clock_t, duration_t > &time_point, date_time_kind kind)
Initializes a new instance of the xtd::date_time structure to a specified time point,...
Definition date_time.hpp:223
auto ticks_duration() const noexcept -> xtd::ticks
Gets the number of ticks that represent the date and time of this instance.
auto to_file_time() const -> xtd::int64
Converts the value of the current xtd::date_time object to a Windows file time.
auto subtract(const date_time &value) const -> xtd::time_span
Returns a new xtd::time_span that subtracts the specified date and time from the value of this instan...
date_time(xtd::int64 ticks, xtd::date_time_kind kind)
Initializes a new instance of the xtd::date_time structure to a specified number of ticks and to Coor...
auto equals(const object &obj) const noexcept -> bool override
Determines whether the specified object is equal to the current object.
static auto days_in_month(xtd::uint32 year, xtd::month_of_year month) -> xtd::int32
Returns the number of days in the specified month and year.
auto to_short_time_string() const -> xtd::string
Converts the value of the current xtd::date_time object to its equivalent short time string represent...
auto get_date_time_formats() const noexcept -> xtd::array< xtd::string >
Converts the value of this instance to all the string representations supported by the standard date ...
static auto from_file_time(xtd::int64 file_time) -> date_time
Converts the specified Windows file time to an equivalent local time.
auto to_string() const noexcept -> xtd::string override
Converts the value of the current xtd::date_time object to its equivalent string representation using...
auto add_milliseconds(double value) const -> date_time
Returns a new xtd::date_time that adds the specified number of milliseconds to the value of this inst...
date_time(xtd::uint32 year, xtd::uint32 month, xtd::uint32 day, xtd::uint32 hour, xtd::uint32 minute, xtd::uint32 second, xtd::uint32 millisecond, xtd::date_time_kind kind)
Initializes a new instance of the xtd::date_time structure to the specified year, month,...
auto is_daylight_saving_time() const noexcept -> bool
Indicates whether this instance of xtd::date_time is within the daylight saving time range for the cu...
static auto try_parse(const xtd::string &s, date_time &result) noexcept -> bool
Converts the specified string representation of a date and time to its xtd::date_time equivalent and ...
date_time(xtd::ticks ticks)
Initializes a new instance of the xtd::date_time structure to a specified number of ticks.
static auto is_leap_year(xtd::uint32 year) -> bool
Returns an indication whether the specified year is a leap year.
static auto parse(const xtd::string &s) -> date_time
Converts the string representation of a date and time to its xtd::date_time equivalent by using the c...
auto minute() const noexcept -> xtd::uint32
Gets the minute component of the date represented by this instance.
auto add_days(double value) const -> date_time
Returns a new xtd::date_time that adds the specified number of days to the value of this instance.
auto kind() const noexcept -> xtd::date_time_kind
Gets a value that indicates whether the time represented by this instance is based on local time,...
date_time()=default
Initializes a new instance of the xtd::date_time structure.
date_time(xtd::int64 ticks)
Initializes a new instance of the xtd::date_time structure to a specified number of ticks.
auto day() const noexcept -> xtd::uint32
Gets the day of the month represented by this instance.
auto time_of_day() const noexcept -> xtd::time_span
Gets the time of day for this instance.
auto millisecond() const noexcept -> xtd::uint32
Gets the milliseconds component of the date represented by this instance.
static auto from_binary(xtd::int64 date_data) -> date_time
Deserializes a 64-bit binary value and recreates an original serialized xtd::date_time object.
auto year() const noexcept -> xtd::uint32
Gets the year component of the date represented by this instance.
auto second() const noexcept -> xtd::uint32
Gets the seconds component of the date represented by this instance.
static auto from_time_t(std::time_t value) -> date_time
Converts the specified std::time_t to an equivalent unspecified time.
auto add_hours(double value) const -> date_time
Returns a new xtd::date_time that adds the specified number of hours to the value of this instance.
date_time(const std::chrono::time_point< clock_t, duration_t > &time_point)
Initializes a new instance of the xtd::date_time structure to a specified time point.
Definition date_time.hpp:214
auto to_time_t() const -> std::time_t
Converts the value of the current xtd::date_time object to std::time_t.
auto add_ticks(xtd::int64 value) const -> date_time
Returns a new xtd::date_time that adds the specified number of ticks to the value of this instance.
date_time(xtd::uint32 year, xtd::uint32 month, xtd::uint32 day)
Initializes a new instance of the xtd::date_time structure to the specified year, month,...
auto to_long_time_string() const -> xtd::string
Converts the value of the current xtd::date_time object to its equivalent long time string representa...
auto ticks() const noexcept -> xtd::int64
Gets the number of ticks that represent the date and time of this instance.
auto add_seconds(double value) const -> date_time
Returns a new xtd::date_time that adds the specified number of seconds to the value of this instance.
auto to_local_time() const -> date_time
Converts the value of the current xtd::date_time object to local time.
static auto sprintf(const xtd::string &format, const xtd::date_time &value) -> xtd::string
Returns a xtd::string that represents the current xtd::date_time.
static auto from_tm(const std::tm &value) -> date_time
Converts the specified std::tm to an equivalent unspecified time.
auto add(const xtd::time_span &value) const -> date_time
Returns a new xtd::date_time that adds the value of the specified xtd::time_span to the value of this...
auto to_binary() const -> xtd::int64
Serializes the current xtd::date_time object to a 64-bit binary value that subsequently can be used t...
static const date_time max_value
Represents the largest possible value of xtd::date_time. This field is read-only.
Definition date_time.hpp:95
auto to_tm() const -> std::tm
Converts the value of the current xtd::date_time object to std::tm.
Defines a generalized comparison method that a value type or class implements to create a type-specif...
Definition icomparable.hpp:22
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition iequatable.hpp:23
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition object.hpp:45
Represents a time interval.
Definition time_span.hpp:29
Represents any time zone in the world.
Definition time_zone_info.hpp:39
Contains xtd::globalization::culture_info class.
Contains xtd::date_time_kind enum class.
Contains xtd::day_of_week enum class.
#define core_export_
Define shared library export.
Definition core_export.hpp:13
std::int64_t int64
Represents a 64-bit signed integer.
Definition int64.hpp:23
std::uint32_t uint32
Represents a 32-bit unsigned integer.
Definition uint32.hpp:23
size_t size
Represents a size of any object in bytes.
Definition size.hpp:23
std::int32_t int32
Represents a 32-bit signed integer.
Definition int32.hpp:25
std::chrono::duration< int64, tick > ticks
Represents a tick duration.
Definition ticks.hpp:21
date_time_kind
Specifies whether a DateTime object represents a local time, a Coordinated Universal Time (UTC),...
Definition date_time_kind.hpp:21
month_of_year
Specifies the month of the year.
Definition month_of_year.hpp:21
@ local
The time represented is local time.
Definition date_time_kind.hpp:27
Contains xtd::icomparable interface.
Contains xtd::iequatable interface.
Contains xtd::month_of_year enum class.
Contains classes that define culture-related information, including language, country/region,...
Definition culture_info.hpp:20
Contains classes that represent ASCII and Unicode character encodings; abstract base classes for conv...
Definition basic_string_builder.hpp:17
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition abstract_object.hpp:8
Contains xtd::object class.
Contains xtd::string alias.
Contains xtd::ticks typedef.
Contains xtd::time_span class.