CodePorting.Translator Cs2Cpp
CodePorting.Translator.Cs2Cpp.Framework
timezone_info.h
1
3#pragma once
4#include <system/object.h>
5#include <system/date_time.h>
6#include <system/date_time_offset.h>
7#include <system/timespan.h>
8#include <system/iequatable.h>
9#include <system/collections/read_only_collection.h>
10#include <system/default.h>
11#include <system/details/icu_namespace.h>
12#include <system/details/lazy.h>
13
15ASPOSECPP_3RD_PARTY_ICU_NAMESPACE_START{
17 ASPOSECPP_3RD_PARTY_CLASS(BasicTimeZone);
18}
19
20namespace System {
21
22class TimeZoneInfo;
25
30class ASPOSECPP_SHARED_CLASS TimeZoneInfo final
31 : public IEquatable<TimeZoneInfoPtr>
32{
34 RTTI_INFO(System::TimeZoneInfo, ::System::BaseTypesInfo<System::Object>)
35
36public:
38 class ASPOSECPP_SHARED_CLASS TransitionTime final
39 {
40 public:
43
46 {
47 return m_time_of_day;
48 }
49
51 int get_Month() const
52 {
53 return static_cast<int>(m_month);
54 }
55
57 int get_Week() const
58 {
59 return static_cast<int>(m_week);
60 }
61
63 int get_Day() const
64 {
65 return static_cast<int>(m_day);
66 }
67
70 {
71 return static_cast<DayOfWeek>(m_day_of_week);
72 }
73
77 {
78 return m_is_fixed_date_rule;
79 }
80
86 static TransitionTime CreateFixedDateRule(DateTime time_of_day, int month, int day)
87 {
88 return TransitionTime(time_of_day, month, 1, day, DayOfWeek::Sunday, true);
89 }
90
97 static TransitionTime CreateFloatingDateRule(DateTime time_of_day, int month, int week, DayOfWeek day_of_week)
98 {
99 return TransitionTime(time_of_day, month, week, 1, day_of_week, false);
100 }
101
110 static TransitionTime CreateTransitionTime(DateTime time_of_day, int month, int week, int day, DayOfWeek day_of_week, bool is_fixed_date_rule)
111 {
112 return TransitionTime(time_of_day, month, week, day, day_of_week, is_fixed_date_rule);
113 }
114
115 bool operator==(const TransitionTime& other) const
116 {
117 return m_is_fixed_date_rule == other.m_is_fixed_date_rule
118 && m_time_of_day == other.m_time_of_day
119 && m_month == other.m_month
120 && (m_is_fixed_date_rule
121 ? m_day == other.m_day
122 : m_week == other.m_week && m_day_of_week == other.m_day_of_week);
123 }
124
125 bool operator!=(const TransitionTime& other) const
126 {
127 return !operator==(other);
128 }
129
130 private:
132 DateTime m_time_of_day;
134 uint8_t m_month;
136 uint8_t m_week;
138 uint8_t m_day;
140 uint8_t m_day_of_week;
142 bool m_is_fixed_date_rule;
143
145 ASPOSECPP_SHARED_API TransitionTime(DateTime time_of_day, int month, int week, int day, DayOfWeek day_of_week, bool is_fixed_date_rule);
146
148 static void VerifyTransitionTime(DateTime time_of_day, int month, int week, int day, DayOfWeek day_of_week);
149 };
150
151 class AdjustmentRule;
154
159 class ASPOSECPP_SHARED_CLASS AdjustmentRule final
160 : public IEquatable<AdjustmentRulePtr>
161 {
162 public:
165 {
166 return m_date_start;
167 }
170 {
171 return m_date_end;
172 }
175 {
176 return m_daylight_delta;
177 }
180 {
181 return m_daylight_transition_start;
182 }
185 {
186 return m_daylight_transition_end;
187 }
188
191 {
192 return m_base_utc_offset_delta;
193 }
194
197
205 static ASPOSECPP_SHARED_API AdjustmentRulePtr CreateAdjustmentRule(
206 DateTime date_start,
207 DateTime date_end,
208 TimeSpan daylight_delta,
209 const TransitionTime& daylight_transition_start,
210 const TransitionTime& daylight_transition_end);
211
221 static ASPOSECPP_SHARED_API AdjustmentRulePtr CreateAdjustmentRule(
222 DateTime date_start,
223 DateTime date_end,
224 TimeSpan daylight_delta,
225 const TransitionTime& daylight_transition_start,
226 const TransitionTime& daylight_transition_end,
227 TimeSpan base_utc_offset_delta,
228 bool no_daylight_transitions);
229
230 ASPOSECPP_SHARED_API bool Equals(AdjustmentRulePtr other) override;
231 ASPOSECPP_SHARED_API int GetHashCode() const override;
232
233 private:
235 DateTime m_date_start;
237 DateTime m_date_end;
239 TimeSpan m_daylight_delta;
241 TransitionTime m_daylight_transition_start;
243 TransitionTime m_daylight_transition_end;
245 TimeSpan m_base_utc_offset_delta;
247 bool m_no_daylight_transitions;
248
250 ASPOSECPP_SHARED_API AdjustmentRule(DateTime date_start, DateTime date_end, TimeSpan daylight_delta,
251 const TransitionTime& daylight_transition_start, const TransitionTime& daylight_transition_end,
252 TimeSpan base_utc_offset_delta, bool no_daylight_transitions);
253 MEMBER_FUNCTION_MAKE_OBJECT(
255 CODEPORTING_ARGS(
256 const DateTime& date_start,
257 const DateTime& date_end,
258 const TimeSpan& daylight_delta,
259 const TransitionTime& daylight_transition_start,
260 const TransitionTime& daylight_transition_end,
261 const TimeSpan& base_utc_offset_delta,
262 bool no_daylight_transitions
263 ),
264 CODEPORTING_ARGS(
265 date_start,
266 date_end,
267 daylight_delta,
268 daylight_transition_start,
269 daylight_transition_end,
270 base_utc_offset_delta,
271 no_daylight_transitions
272 )
273 );
274
276 static void VerifyAdjustmentRule(DateTime date_start, DateTime date_end, TimeSpan daylight_delta,
277 const TransitionTime& daylight_transition_start, const TransitionTime& daylight_transition_end, bool no_daylight_transitions);
278 };
279
281 static ASPOSECPP_SHARED_API TimeZoneInfoPtr get_Utc();
283 static ASPOSECPP_SHARED_API TimeZoneInfoPtr get_Local();
284
286 ASPOSECPP_SHARED_API bool get_SupportsDaylightSavingTime() const;
288 ASPOSECPP_SHARED_API TimeSpan get_BaseUtcOffset() const;
290 ASPOSECPP_SHARED_API String get_DaylightName() const;
292 ASPOSECPP_SHARED_API String get_StandardName() const;
294 ASPOSECPP_SHARED_API String get_DisplayName() const;
296 ASPOSECPP_SHARED_API String get_Id() const;
297
299 static ASPOSECPP_SHARED_API void ClearCachedData();
305 static ASPOSECPP_SHARED_API DateTime ConvertTime(DateTime date_time, const TimeZoneInfoPtr& source_time_zone, const TimeZoneInfoPtr& destination_time_zone);
310 static ASPOSECPP_SHARED_API DateTimeOffset ConvertTime(const DateTimeOffset& date_time_offset, const TimeZoneInfoPtr& destination_time_zone);
315 static ASPOSECPP_SHARED_API DateTime ConvertTime(DateTime date_time, const TimeZoneInfoPtr& destination_time_zone);
320 static ASPOSECPP_SHARED_API DateTime ConvertTimeBySystemTimeZoneId(DateTime date_time, const String& destination_time_zone_id);
325 static ASPOSECPP_SHARED_API DateTimeOffset ConvertTimeBySystemTimeZoneId(const DateTimeOffset& date_time_offset, const String& destination_time_zone_id);
331 static ASPOSECPP_SHARED_API DateTime ConvertTimeBySystemTimeZoneId(DateTime date_time, const String& source_time_zone_id, const String& destination_time_zone_id);
336 static ASPOSECPP_SHARED_API DateTime ConvertTimeFromUtc(DateTime date_time, const TimeZoneInfoPtr& destination_time_zone);
341 static ASPOSECPP_SHARED_API DateTime ConvertTimeToUtc(DateTime date_time, const TimeZoneInfoPtr& source_time_zone);
345 static ASPOSECPP_SHARED_API DateTime ConvertTimeToUtc(DateTime date_time);
359 static ASPOSECPP_SHARED_API TimeZoneInfoPtr CreateCustomTimeZone(const String& id, TimeSpan base_utc_offset, const String& display_name, const String& standard_display_name, const String& daylight_display_name, const ArrayPtr<AdjustmentRulePtr>& adjustment_rules, bool disable_daylight_saving_time);
368 static ASPOSECPP_SHARED_API TimeZoneInfoPtr CreateCustomTimeZone(const String& id, TimeSpan base_utc_offset, const String& display_name, const String& standard_display_name, const String& daylight_display_name, const ArrayPtr<AdjustmentRulePtr>& adjustment_rules);
375 static ASPOSECPP_SHARED_API TimeZoneInfoPtr CreateCustomTimeZone(const String& id, TimeSpan base_utc_offset, const String& display_name, const String& standard_display_name);
379 static ASPOSECPP_SHARED_API TimeZoneInfoPtr FindSystemTimeZoneById(const String& id);
383
389 ASPOSECPP_SHARED_API ArrayPtr<TimeSpan> GetAmbiguousTimeOffsets(DateTime date_time) const;
393 ASPOSECPP_SHARED_API ArrayPtr<TimeSpan> GetAmbiguousTimeOffsets(const DateTimeOffset& date_time_offset) const;
397 ASPOSECPP_SHARED_API TimeSpan GetUtcOffset(DateTime date_time) const;
405 ASPOSECPP_SHARED_API TimeSpan GetUtcOffset(const DateTimeOffset& date_time_offset) const;
409 ASPOSECPP_SHARED_API bool HasSameRules(const TimeZoneInfoPtr& other) const;
413 ASPOSECPP_SHARED_API bool IsAmbiguousTime(DateTime date_time) const;
417 ASPOSECPP_SHARED_API bool IsAmbiguousTime(const DateTimeOffset& date_time_offset) const;
421 ASPOSECPP_SHARED_API bool IsDaylightSavingTime(DateTime date_time) const;
425 ASPOSECPP_SHARED_API bool IsDaylightSavingTimeNoThrow(DateTime date_time) const;
429 ASPOSECPP_SHARED_API bool IsDaylightSavingTime(const DateTimeOffset& date_time_offset) const;
433 ASPOSECPP_SHARED_API bool IsInvalidTime(DateTime date_time) const;
434
435 ASPOSECPP_SHARED_API bool Equals(SharedPtr<Object> obj) override;
436 ASPOSECPP_SHARED_API bool Equals(TimeZoneInfoPtr other) override;
437 ASPOSECPP_SHARED_API int GetHashCode() const override;
438 ASPOSECPP_SHARED_API String ToString() const override;
439
442
444 static TimeSpan GetUtcOffsetFromUtc(DateTime time, const TimeZoneInfoPtr& zone, bool& is_daylight_savings, bool& is_ambiguous_local_dst);
445
447 static ASPOSECPP_SHARED_API DateTime TransitionTimeToDateTime(int32_t year, const TransitionTime& transitionTime);
448
449protected:
451 ASPOSECPP_SHARED_API ~TimeZoneInfo() override;
465 mutable System::Details::Lazy<ArrayPtr<AdjustmentRulePtr>> m_adjustment_rules;
467 const std::unique_ptr<const codeporting_icu::BasicTimeZone> m_icu_time_zone;
470
482 const String& id,
483 TimeSpan base_utc_offset,
484 const String& display_name,
485 const String& standard_display_name,
486 const String& daylight_display_name,
487 const ArrayPtr<AdjustmentRulePtr>& adjustment_rules,
488 bool disable_daylight_saving_time,
489 std::unique_ptr<const codeporting_icu::BasicTimeZone>&& icu_time_zone,
490 DateTimeKind time_zone_kind = DateTimeKind::Unspecified);
491 MEMBER_FUNCTION_MAKE_OBJECT(
493 CODEPORTING_ARGS(
494 const String& id,
495 const TimeSpan& base_utc_offset,
496 const String& display_name,
497 const String& standard_display_name,
498 const String& daylight_display_name,
499 const ArrayPtr<AdjustmentRulePtr>& adjustment_rules,
500 bool disable_daylight_saving_time,
501 std::unique_ptr<const codeporting_icu::BasicTimeZone>&& icu_time_zone,
503 ),
504 CODEPORTING_ARGS(
505 id,
506 base_utc_offset,
507 display_name,
508 standard_display_name,
509 daylight_display_name,
510 adjustment_rules,
511 disable_daylight_saving_time,
512 std::forward<std::unique_ptr<const codeporting_icu::BasicTimeZone>&&>(icu_time_zone),
513 time_zone_kind
514 )
515 );
516
523 static DateTime ConvertTime(DateTime date_time, const TimeZoneInfoPtr& source_time_zone, const TimeZoneInfoPtr& destination_time_zone, bool throw_on_invalid_time);
524
526 static void VerifyTimeZoneInfo(const String& id, TimeSpan base_utc_offset, const ArrayPtr<AdjustmentRulePtr>& adjustment_rules);
527
529
530 static TimeZoneInfoPtr CreateTimeZoneInfoFromIcuTimeZone(std::unique_ptr<const codeporting_icu::BasicTimeZone>&& time_zone, DateTimeKind time_zone_kind = DateTimeKind::Unspecified);
531};
532
533} // namespace System
Represents a specific date and time value on the time continuum. This type should be allocated on sta...
Definition: date_time.h:50
Contains the date and time of day relative to Coordinated Universal Time. Objects of this class shoul...
Definition: date_time_offset.h:16
Defines a method that determines the equality of two objects. Objects of this class should only be al...
Definition: iequatable.h:16
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: smart_ptr.h:180
String class used across the library. Is a substitute for C# System.String when translating code....
Definition: string.h:122
Represents a time interval. This type should be allocated on stack and passed to functions by value o...
Definition: timespan.h:59
Provides information about a time zone adjustment. Objects of this class should only be allocated usi...
Definition: timezone_info.h:161
DateTime get_DateStart() const
Returns a DateTime object that represents the date and time when the adjustment rule comes into effec...
Definition: timezone_info.h:164
bool get_HasDaylightSaving() const
FOR INTERNAL USE.
static AdjustmentRulePtr CreateAdjustmentRule(DateTime date_start, DateTime date_end, TimeSpan daylight_delta, const TransitionTime &daylight_transition_start, const TransitionTime &daylight_transition_end, TimeSpan base_utc_offset_delta, bool no_daylight_transitions)
Constructs an instance of AdjustmentRule class that represents a time adjustment rule described with ...
TimeSpan get_DaylightDelta() const
Returns in TimeSpan object that represents the amount of time required to form the daylight saving ti...
Definition: timezone_info.h:174
TimeSpan get_BaseUtcOffsetDelta() const
Returns a delta from the default UTC offset.
Definition: timezone_info.h:190
TransitionTime get_DaylightTransitionStart() const
Returns the information about transition from daylight saving time to standard time.
Definition: timezone_info.h:179
static AdjustmentRulePtr CreateAdjustmentRule(DateTime date_start, DateTime date_end, TimeSpan daylight_delta, const TransitionTime &daylight_transition_start, const TransitionTime &daylight_transition_end)
Constructs an instance of AdjustmentRule class that represents a time adjustment rule described with ...
int GetHashCode() const override
Analog of C# Object.GetHashCode() method. Enables hashing of custom objects.
TransitionTime get_DaylightTransitionEnd() const
Returns the information about transition from standard time to daylight saving time.
Definition: timezone_info.h:184
DateTime get_DateEnd() const
Returns a DateTime object that represents the date and time when the adjustment rule stops being effe...
Definition: timezone_info.h:169
bool Equals(AdjustmentRulePtr other) override
RTTI information.
Definition: timezone_info.h:39
int get_Week() const
Returns the ordinal number of the week of the month at which the time change occurs.
Definition: timezone_info.h:57
bool operator==(const TransitionTime &other) const
Definition: timezone_info.h:115
int get_Day() const
Returns the ordinal number of the day of week at which the time change occurs.
Definition: timezone_info.h:63
static TransitionTime CreateFloatingDateRule(DateTime time_of_day, int month, int week, DayOfWeek day_of_week)
Constructs an instance of TransitionTime class that represents a floating-date rule (time change that...
Definition: timezone_info.h:97
DateTime get_TimeOfDay() const
Returns a DateTime object that represents the specific time at which the time change occurs.
Definition: timezone_info.h:45
bool operator!=(const TransitionTime &other) const
Definition: timezone_info.h:125
DayOfWeek get_DayOfWeek() const
Returns the value that represents the day of week at which the time change occurs.
Definition: timezone_info.h:69
static TransitionTime CreateTransitionTime(DateTime time_of_day, int month, int week, int day, DayOfWeek day_of_week, bool is_fixed_date_rule)
Constructs an instance of TransitionTime class that represents a time change described with the speci...
Definition: timezone_info.h:110
TransitionTime()
Default constructor. FOR INTERNAL USE.
int get_Month() const
Returns the ordinal number of the month of the year at which the time change occurs.
Definition: timezone_info.h:51
bool get_IsFixedDateRule() const
Returns the value that indicates if the time change occurs at a fixed date and time or a floating dat...
Definition: timezone_info.h:76
static TransitionTime CreateFixedDateRule(DateTime time_of_day, int month, int day)
Constructs an instance of TransitionTime class that represents a fixed-date rule (time change that oc...
Definition: timezone_info.h:86
Represents an information destribing a particular time zone. Objects of this class should only be all...
Definition: timezone_info.h:32
static DateTime ConvertTimeBySystemTimeZoneId(DateTime date_time, const String &destination_time_zone_id)
Convert time to the time in a specified time zone.
bool IsDaylightSavingTime(const DateTimeOffset &date_time_offset) const
Checks if specified date and time falls in range of daylight saving time.
static DateTime ConvertTimeToUtc(DateTime date_time, const TimeZoneInfoPtr &source_time_zone)
Converts time to UTC-time.
ArrayPtr< TimeSpan > GetAmbiguousTimeOffsets(DateTime date_time) const
Gets UTC dates and times that a specified date and time can be mapped to.
bool IsDaylightSavingTime(DateTime date_time) const
Checks if specified date and time falls in range of daylight saving time.
bool IsDaylightSavingTimeNoThrow(DateTime date_time) const
Checks if specified date and time falls in range of daylight saving time.
static TimeZoneInfoPtr get_Local()
Returns an instance of TimeZoneInfo that represents a local time zone.
const TimeSpan m_base_utc_offset
A time interval between the current time zone's standard time and UTC time.
Definition: timezone_info.h:461
ArrayPtr< AdjustmentRulePtr > GetAdjustmentRules() const
Returns an array consisting of AdjustmentRule objects that represent adjustment rules that apply to t...
bool get_SupportsDaylightSavingTime() const
Gets flag indicating if time zone has daylight saving time rules.
TimeSpan GetUtcOffsetNoThrow(DateTime date_time) const
Calculates difference between time in this time zone and UTC time zone for a specified date and time....
String get_DaylightName() const
Gets name for the current time zone's daylight saving time.
static DateTime ConvertTimeToUtcNoThrow(DateTime date_time)
Converts time to UTC-time. FOR INTERNAL USE.
static DateTime ConvertTimeFromUtc(DateTime date_time, const TimeZoneInfoPtr &destination_time_zone)
Converts UTC-time to the time in a specified time zone.
const String m_display_name
The display name for the time zone.
Definition: timezone_info.h:455
static DateTime ConvertTime(DateTime date_time, const TimeZoneInfoPtr &source_time_zone, const TimeZoneInfoPtr &destination_time_zone)
Convert time from one time zone to another.
TimeZoneInfo(const String &id, TimeSpan base_utc_offset, const String &display_name, const String &standard_display_name, const String &daylight_display_name, const ArrayPtr< AdjustmentRulePtr > &adjustment_rules, bool disable_daylight_saving_time, std::unique_ptr< const codeporting_icu::BasicTimeZone > &&icu_time_zone, DateTimeKind time_zone_kind=DateTimeKind::Unspecified)
Constructs an instance of TimeZoneInfo.
System::Details::Lazy< ArrayPtr< AdjustmentRulePtr > > m_adjustment_rules
Adjustment rules that apply to the current time zone.
Definition: timezone_info.h:465
bool Equals(SharedPtr< Object > obj) override
bool IsInvalidTime(DateTime date_time) const
Checks if specified date and time is invalid.
static DateTimeOffset ConvertTime(const DateTimeOffset &date_time_offset, const TimeZoneInfoPtr &destination_time_zone)
Convert time to the time in a specified time zone.
static TimeZoneInfoPtr CreateCustomTimeZone(const String &id, TimeSpan base_utc_offset, const String &display_name, const String &standard_display_name)
Creates a custom time zone.
String get_Id() const
Returns the identifier of the time zone represented by the current object.
const std::unique_ptr< const codeporting_icu::BasicTimeZone > m_icu_time_zone
ICU Time zone.
Definition: timezone_info.h:467
static DateTimeOffset ConvertTimeBySystemTimeZoneId(const DateTimeOffset &date_time_offset, const String &destination_time_zone_id)
Convert time to the time in a specified time zone.
String ToString() const override
Analog of C# Object.ToString() method. Enables converting custom objects to string.
static TimeZoneInfoPtr CreateTimeZoneInfoFromIcuTimeZone(std::unique_ptr< const codeporting_icu::BasicTimeZone > &&time_zone, DateTimeKind time_zone_kind=DateTimeKind::Unspecified)
bool IsAmbiguousTime(const DateTimeOffset &date_time_offset) const
Checks if specified date and time is ambiguous and can be mapped to many UTC times.
const DateTimeKind m_time_zone_kind
Time zone kind (UTC, Local or Unspecified).
Definition: timezone_info.h:469
TimeSpan get_BaseUtcOffset() const
Returns an instance of TimeSpan that represents a time interval between the current time zone's stand...
bool IsAmbiguousTime(DateTime date_time) const
Checks if specified date and time is ambiguous and can be mapped to many UTC times.
int GetHashCode() const override
Analog of C# Object.GetHashCode() method. Enables hashing of custom objects.
TimeSpan GetUtcOffset(DateTime date_time) const
Calculates difference between time in this time zone and UTC time zone for a specified date and time.
TimeSpan GetUtcOffset(const DateTimeOffset &date_time_offset) const
Calculates difference between time in this time zone and UTC time zone for a specified date and time.
const String m_id
The identifier of the time zone.
Definition: timezone_info.h:453
~TimeZoneInfo() override
Destructor.
const ArrayPtr< AdjustmentRulePtr > & AdjustmentRules() const
static TimeZoneInfoPtr FindSystemTimeZoneById(const String &id)
Gets time zone with specified identifier.
static DateTime ConvertTimeToUtc(DateTime date_time)
Converts time to UTC-time.
SharedPtr< AdjustmentRule > AdjustmentRulePtr
An alias for a shared pointer to an instance of AdjustmentRule class.
Definition: timezone_info.h:153
static TimeZoneInfoPtr CreateCustomTimeZone(const String &id, TimeSpan base_utc_offset, const String &display_name, const String &standard_display_name, const String &daylight_display_name, const ArrayPtr< AdjustmentRulePtr > &adjustment_rules, bool disable_daylight_saving_time)
Creates a custom time zone.
static TimeSpan GetUtcOffsetFromUtc(DateTime time, const TimeZoneInfoPtr &zone, bool &is_daylight_savings, bool &is_ambiguous_local_dst)
Internal helper function that returns the UTC offset for a UTC-datetime in a specified time zone....
static DateTime TransitionTimeToDateTime(int32_t year, const TransitionTime &transitionTime)
Helper function that converts a year and TransitionTime into a DateTime.
static SharedPtr< System::Collections::ObjectModel::ReadOnlyCollection< TimeZoneInfoPtr > > GetSystemTimeZones()
Gets sorted collection of all time zones available on the local system.
static TimeZoneInfoPtr CreateCustomTimeZone(const String &id, TimeSpan base_utc_offset, const String &display_name, const String &standard_display_name, const String &daylight_display_name, const ArrayPtr< AdjustmentRulePtr > &adjustment_rules)
Creates a custom time zone.
static void VerifyTimeZoneInfo(const String &id, TimeSpan base_utc_offset, const ArrayPtr< AdjustmentRulePtr > &adjustment_rules)
Verify time zone information.
String get_DisplayName() const
Gets name for the current time zone.
static TimeZoneInfoPtr get_Utc()
Returns an instance of TimeZoneInfo that represents a UTC time zone.
static TimeSpan GetUtcOffsetFromUtc(DateTime time, const TimeZoneInfoPtr &zone)
Internal helper function that returns the UTC offset for a UTC-datetime in a specified time zone....
const String m_daylight_display_name
The dispaly name for the daylight saving time of the time zone.
Definition: timezone_info.h:459
const String m_standard_display_name
The display name for the standard time of the time zone.
Definition: timezone_info.h:457
String get_StandardName() const
Gets name for the current time zone's standart time.
bool Equals(TimeZoneInfoPtr other) override
Determines if the the current and specified objects are equal.
bool HasSameRules(const TimeZoneInfoPtr &other) const
Checks if current and another time zones have the same adjustment rules.
static DateTime ConvertTime(DateTime date_time, const TimeZoneInfoPtr &destination_time_zone)
Convert time to the time in a specified time zone.
const bool m_supports_daylight_saving_time
Indicates whether the time zone represented by the current object assumes transition to daylight savi...
Definition: timezone_info.h:463
ArrayPtr< TimeSpan > GetAmbiguousTimeOffsets(const DateTimeOffset &date_time_offset) const
Gets UTC dates and times that a specified date and time can be mapped to.
static DateTime ConvertTimeBySystemTimeZoneId(DateTime date_time, const String &source_time_zone_id, const String &destination_time_zone_id)
Convert time to the time in a specified time zone.
static DateTime ConvertTime(DateTime date_time, const TimeZoneInfoPtr &source_time_zone, const TimeZoneInfoPtr &destination_time_zone, bool throw_on_invalid_time)
Convert time from one time zone to another.
static void ClearCachedData()
Clear cached time zone data.
Definition: db_command.h:9
DateTimeKind
Enumeration values of which represent the kinds of date and time.
Definition: date_time_kind.h:10
@ Unspecified
Unspecified kind.
SharedPtr< TimeZoneInfo > TimeZoneInfoPtr
Alias for shared pointer to an instance of TimeZoneInfo class.
Definition: timezone_info.h:24
DayOfWeek
Enumeration that represents a day of week.
Definition: day_of_week.h:11
bool operator==(ArraySegment< T > a, ArraySegment< T > b)
Definition: array_segment.h:151