15[
TypeForwardedFrom(
"System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
397 foreach (
char c
in text)
399 if (c ==
'\\' || c ==
'[' || c ==
']' || c ==
';')
433 if (c !=
'\\' && c !=
';' && c !=
'[' && c !=
']')
454 case State.NotEscaped:
510 case State.NotEscaped:
601 return list.ToArray();
795 return t1.Equals(
t2);
800 return !
t1.Equals(
t2);
807 if (!
other._isFixedDateRule)
935 private readonly
string _id;
1217 bool result =
false;
1424 if (
cachedData._readOnlySystemTimeZones ==
null)
1587 int num3 = num + (
num2 - num >> 1);
1691 if (
rule.NoDaylightTransitions)
1734 if (
rule.NoDaylightTransitions)
1864 if (
rule.NoDaylightTransitions)
1881 bool result =
false;
1890 if (
rule.IsEndDateMarkerForEndOfYear())
1899 if (
rule.IsStartDateMarkerForBeginningOfYear())
1936 bool result =
false;
1945 if (
rule.IsEndDateMarkerForEndOfYear())
1954 if (
rule.IsStartDateMarkerForBeginningOfYear())
2117 if (
value._equivalentZones ==
null)
2289 foreach (
char c
in ianaId)
2291 if (c ==
'\\' || c ==
'\n' || c ==
'\r')
2322 if (c ==
'\\' || c ==
'\n' || c ==
'\r')
2426 return AdjustmentRule.
CreateAdjustmentRule(
startDate,
endDate,
TimeSpan.
Zero,
TransitionTime.
CreateFixedDateRule(
DateTime.
MinValue, 1, 1),
TransitionTime.
CreateFixedDateRule(
DateTime.
MinValue.AddMilliseconds(1.0), 1, 1),
new TimeSpan(0,
defaultBaseUtcOffset -
timeZoneInformation.Bias, 0),
noDaylightTransitions:
false);
2440 return AdjustmentRule.
CreateAdjustmentRule(
startDate,
endDate,
new TimeSpan(0, -
timeZoneInformation.DaylightBias, 0),
transitionTime,
transitionTime2,
new TimeSpan(0,
defaultBaseUtcOffset -
timeZoneInformation.Bias, 0),
noDaylightTransitions:
false);
2525 if (
id.Length == 0 ||
id.Length > 255 ||
id.Contains(
'\0'))
2609 int num = (int)
registryKey.GetValue(
"FirstEntry", -1);
2611 if (num == -1 ||
num2 == -1 || num >
num2)
2634 for (
int i = num + 1; i <
num2; i++)
2655 if (
list.Count != 0)
2730 return string.Empty;
2733 if (
array.Length != 2)
2735 return string.Empty;
2739 return string.Empty;
2744 string path =
$"{array[0].AsSpan().TrimStart('@')}.mui";
2760 return string.Empty;
2786 return string.Empty;
2797 if (!
string.IsNullOrEmpty(
text))
2801 if (!
string.IsNullOrEmpty(
text2))
2805 if (!
string.IsNullOrEmpty(
text3))
2867 return "Coordinated Universal Time";
2875 if (!
string.IsNullOrEmpty(
text2))
2879 if (
string.IsNullOrEmpty(
text))
2890 text =
"Coordinated Universal Time";
static readonly RegistryKey LocalMachine
static unsafe int IanaIdToWindowsId(string ianaId, char *windowsId, int windowsIdLength)
static unsafe int WindowsIdToIanaId(string windowsId, IntPtr region, char *ianaId, int ianaIdLength)
static bool FreeLibrary(IntPtr hModule)
static IntPtr LoadLibraryEx(string libFilename, IntPtr reserved, int flags)
static uint GetTimeZoneInformation(out TIME_ZONE_INFORMATION lpTimeZoneInformation)
static uint GetDynamicTimeZoneInformation(out TIME_DYNAMIC_ZONE_INFORMATION pTimeZoneInformation)
static unsafe int LoadString(IntPtr hInstance, uint uID, char *lpBuffer, int cchBufferMax)
bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)
void Add(TKey key, TValue value)
static string SystemDirectory
static CultureInfo CurrentUICulture
static CultureInfo InvariantCulture
static bool PredefinedCulturesOnly
static bool Exists([NotNullWhen(true)] string? path)
static string Join(ReadOnlySpan< char > path1, ReadOnlySpan< char > path2)
static string Serialization_InvalidData
static string Argument_OutOfOrderDateTimes
static string Argument_DateTimeHasTimeOfDay
static string ArgumentOutOfRange_UtcOffsetAndDaylightDelta
static string Argument_InvalidId
static string TimeZoneNotFound_MissingData
static string Argument_DateTimeOffsetIsNotAmbiguous
static string ArgumentOutOfRange_DayParam
static string ArgumentOutOfRange_DayOfWeek
static string Format(string resourceFormat, object p1)
static string Argument_DateTimeHasTicks
static string Argument_TransitionTimesAreIdentical
static string Argument_InvalidSerializedString
static string Argument_DateTimeIsNotAmbiguous
static string ArgumentOutOfRange_UtcOffset
static string Argument_DateTimeKindMustBeUnspecifiedOrUtc
static string Argument_AdjustmentRulesNoNulls
static string ArgumentOutOfRange_Week
static string InvalidTimeZone_InvalidRegistryData
static string Argument_DateTimeIsInvalid
static string Serialization_CorruptField
static string Security_CannotReadRegistryData
static string Argument_AdjustmentRulesOutOfOrder
static string Argument_ConvertMismatch
static string Argument_TimeSpanHasSeconds
static string Serialization_InvalidEscapeSequence
static string ArgumentOutOfRange_MonthParam
static string Argument_DateTimeKindMustBeUnspecified
static StringComparer OrdinalIgnoreCase
readonly DateTime _dateEnd
static AdjustmentRule CreateAdjustmentRule(DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TransitionTime daylightTransitionStart, TransitionTime daylightTransitionEnd, TimeSpan baseUtcOffsetDelta, bool noDaylightTransitions)
bool IsEndDateMarkerForEndOfYear()
readonly TransitionTime _daylightTransitionEnd
readonly TimeSpan _daylightDelta
TransitionTime DaylightTransitionStart
bool Equals([NotNullWhen(true)] AdjustmentRule? other)
bool NoDaylightTransitions
readonly TimeSpan _baseUtcOffsetDelta
static readonly TimeSpan DaylightDeltaAdjustment
static void ValidateAdjustmentRule(DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TransitionTime daylightTransitionStart, TransitionTime daylightTransitionEnd, bool noDaylightTransitions)
AdjustmentRule(SerializationInfo info, StreamingContext context)
static AdjustmentRule CreateAdjustmentRule(DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TransitionTime daylightTransitionStart, TransitionTime daylightTransitionEnd, TimeSpan baseUtcOffsetDelta)
TimeSpan BaseUtcOffsetDelta
readonly TransitionTime _daylightTransitionStart
readonly bool _noDaylightTransitions
AdjustmentRule(DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TransitionTime daylightTransitionStart, TransitionTime daylightTransitionEnd, TimeSpan baseUtcOffsetDelta, bool noDaylightTransitions)
override int GetHashCode()
bool IsStartDateMarkerForBeginningOfYear()
static readonly TimeSpan MaxDaylightDelta
static AdjustmentRule CreateAdjustmentRule(DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TransitionTime daylightTransitionStart, TransitionTime daylightTransitionEnd)
TransitionTime DaylightTransitionEnd
readonly DateTime _dateStart
static void AdjustDaylightDeltaToExpectedRange(ref TimeSpan daylightDelta, ref TimeSpan baseUtcOffsetDelta)
ReadOnlyCollection< TimeZoneInfo > _readOnlySystemTimeZones
volatile OffsetAndRule _oneYearLocalFromUtc
bool _allSystemTimeZonesRead
TimeZoneInfo CreateLocal()
volatile TimeZoneInfo _localTimeZone
static TimeZoneInfo GetCurrentOneYearLocal()
OffsetAndRule GetOneYearLocalFromUtc(int year)
Dictionary< string, TimeZoneInfo > _systemTimeZones
DateTimeKind GetCorrespondingKind(TimeZoneInfo timeZone)
readonly AdjustmentRule Rule
OffsetAndRule(int year, TimeSpan offset, AdjustmentRule rule)
static TimeZoneInfoResult TryGetTimeZoneFromLocalMachine(string id, bool dstDisabled, out TimeZoneInfo value, out Exception e, CachedData cachedData)
static readonly DateTime s_minDateOnly
static DateTime ConvertTimeToUtc(DateTime dateTime, TimeZoneInfoOptions flags)
static TimeZoneInfoResult TryGetTimeZoneFromLocalMachine(string id, out TimeZoneInfo value, out Exception e)
static TimeZoneInfo CreateUtcTimeZone()
static bool TryCreateAdjustmentRules(string id, in Interop.Kernel32.REG_TZI_FORMAT defaultTimeZoneInformation, out AdjustmentRule[] rules, out Exception e, int defaultBaseUtcOffset)
static DateTime ConvertTimeBySystemTimeZoneId(DateTime dateTime, string sourceTimeZoneId, string destinationTimeZoneId)
static bool TryConvertWindowsIdToIanaId(string windowsId, [NotNullWhen(true)] out string? ianaId)
DateTime ConvertToUtc(DateTime dateTime, TimeSpan daylightDelta, TimeSpan baseUtcOffsetDelta)
static readonly TimeZoneInfo s_utcTimeZone
readonly bool _supportsDaylightSavingTime
static bool GetIsDaylightSavingsFromUtc(DateTime time, int year, TimeSpan utc, AdjustmentRule rule, int? ruleIndex, out bool isAmbiguousLocalDst, TimeZoneInfo zone)
static DateTime ConvertTime(DateTime dateTime, TimeZoneInfo sourceTimeZone, TimeZoneInfo destinationTimeZone)
static string FindIdFromTimeZoneInformation(in Interop.Kernel32.TIME_ZONE_INFORMATION timeZone, out bool dstDisabled)
static readonly TimeSpan MaxOffset
static AdjustmentRule CreateAdjustmentRuleFromTimeZoneInformation(in Interop.Kernel32.REG_TZI_FORMAT timeZoneInformation, DateTime startDate, DateTime endDate, int defaultBaseUtcOffset)
static TimeZoneInfoResult TryGetTimeZoneUsingId(string id, bool dstDisabled, out TimeZoneInfo value, out Exception e, CachedData cachedData, bool alwaysFallbackToLocalMachine)
static TimeZoneInfo FromSerializedString(string source)
bool IsDaylightSavingTime(DateTime dateTime, TimeZoneInfoOptions flags)
static TimeZoneInfo CreateCustomTimeZone(string id, TimeSpan baseUtcOffset, string? displayName, string? standardDisplayName, string? daylightDisplayName, AdjustmentRule[]? adjustmentRules)
string ToSerializedString()
static string GetAlternativeId(string id, out bool idIsIana)
static TimeSpan GetUtcOffsetFromUtc(DateTime time, TimeZoneInfo zone, out bool isDaylightSavings, out bool isAmbiguousLocalDst)
readonly TimeSpan _baseUtcOffset
TimeSpan GetUtcOffset(DateTime dateTime, TimeZoneInfoOptions flags)
static DateTimeOffset ConvertTimeBySystemTimeZoneId(DateTimeOffset dateTimeOffset, string destinationTimeZoneId)
static DateTime ConvertTime(DateTime dateTime, TimeZoneInfo sourceTimeZone, TimeZoneInfo destinationTimeZone, TimeZoneInfoOptions flags, CachedData cachedData)
static bool TryCompareStandardDate(in Interop.Kernel32.TIME_ZONE_INFORMATION timeZone, in Interop.Kernel32.REG_TZI_FORMAT registryTimeZoneInfo)
static DateTime ConvertTimeFromUtc(DateTime dateTime, TimeZoneInfo destinationTimeZone)
static DateTime TransitionTimeToDateTime(int year, TransitionTime transitionTime)
AdjustmentRule GetAdjustmentRuleForTime(DateTime dateTime, bool dateTimeisUtc, out int? ruleIndex)
TimeSpan[] GetAmbiguousTimeOffsets(DateTimeOffset dateTimeOffset)
readonly string _standardDisplayName
static TimeZoneInfo GetLocalTimeZoneFromWin32Data(in Interop.Kernel32.TIME_ZONE_INFORMATION timeZoneInformation, bool dstDisabled)
override string ToString()
static DateTime ConvertTimeToUtc(DateTime dateTime, TimeZoneInfo sourceTimeZone)
static string GetUtcStandardDisplayName()
static void GetLocalizedNamesByRegistryKey(RegistryKey key, out string displayName, out string standardName, out string daylightName)
List< TimeZoneInfo > _equivalentZones
AdjustmentRule[] GetAdjustmentRules()
static bool GetIsInvalidTime(DateTime time, AdjustmentRule rule, DaylightTimeStruct daylightTime)
static bool UtcOffsetOutOfRange(TimeSpan offset)
static unsafe string GetLocalizedNameByNativeResource(string filePath, int resource)
static TimeSpan GetDaylightSavingsEndOffsetFromUtc(TimeSpan baseUtcOffset, AdjustmentRule rule)
bool IsDaylightSavingTime(DateTimeOffset dateTimeOffset)
override bool Equals([NotNullWhen(true)] object? obj)
bool IsAmbiguousTime(DateTimeOffset dateTimeOffset)
static TimeZoneInfo CreateCustomTimeZone(string id, TimeSpan baseUtcOffset, string? displayName, string? standardDisplayName)
static ReadOnlyCollection< TimeZoneInfo > GetSystemTimeZones()
bool HasSameRules(TimeZoneInfo other)
readonly string _displayName
static void ClearCachedData()
static DateTime ConvertTime(DateTime dateTime, TimeZoneInfo sourceTimeZone, TimeZoneInfo destinationTimeZone, TimeZoneInfoOptions flags)
static readonly DateTime s_maxDateOnly
TimeSpan GetUtcOffset(DateTimeOffset dateTimeOffset)
static TimeZoneInfo CreateCustomTimeZone(string id, TimeSpan baseUtcOffset, string? displayName, string? standardDisplayName, string? daylightDisplayName, AdjustmentRule[]? adjustmentRules, bool disableDaylightSavingTime)
readonly string _daylightDisplayName
static TimeSpan GetUtcOffsetFromUtc(DateTime time, TimeZoneInfo zone, out bool isDaylightSavings)
AdjustmentRule GetPreviousAdjustmentRule(AdjustmentRule rule, int? ruleIndex)
static bool TryConvertWindowsIdToIanaId(string windowsId, string? region, [NotNullWhen(true)] out string? ianaId)
readonly AdjustmentRule[] _adjustmentRules
TimeZoneInfo(in Interop.Kernel32.TIME_ZONE_INFORMATION zone, bool dstDisabled)
static CachedData s_cachedData
static DateTime ConvertTime(DateTime dateTime, TimeZoneInfo destinationTimeZone)
static readonly TimeSpan MinOffset
static TimeSpan GetUtcOffsetFromUtc(DateTime time, TimeZoneInfo zone)
AdjustmentRule GetAdjustmentRuleForTime(DateTime dateTime, out int? ruleIndex)
static bool TryCompareTimeZoneInformationToRegistry(in Interop.Kernel32.TIME_ZONE_INFORMATION timeZone, string id, out bool dstDisabled)
static TimeZoneInfo GetLocalTimeZone(CachedData cachedData)
static TimeSpan GetLocalUtcOffset(DateTime dateTime, TimeZoneInfoOptions flags)
static TimeZoneInfo FindSystemTimeZoneById(string id)
TimeSpan GetDaylightSavingsStartOffsetFromUtc(TimeSpan baseUtcOffset, AdjustmentRule rule, int? ruleIndex)
static unsafe bool TryConvertWindowsIdToIanaId(string windowsId, string region, bool allocate, out string ianaId)
static bool IsValidAdjustmentRuleOffset(TimeSpan baseUtcOffset, AdjustmentRule adjustmentRule)
static bool CheckDaylightSavingTimeNotSupported(in Interop.Kernel32.TIME_ZONE_INFORMATION timeZone)
DaylightTimeStruct GetDaylightTime(int year, AdjustmentRule rule, int? ruleIndex)
static bool CheckIsDst(DateTime startTime, DateTime time, DateTime endTime, bool ignoreYearAdjustment, AdjustmentRule rule)
bool IsAmbiguousTime(DateTime dateTime)
static DateTime ConvertUtcToTimeZone(long ticks, TimeZoneInfo destinationTimeZone, out bool isAmbiguousLocalDst)
bool SupportsDaylightSavingTime
static unsafe bool TryConvertIanaIdToWindowsId(string ianaId, bool allocate, out string windowsId)
override int GetHashCode()
bool IsDaylightSavingTime(DateTime dateTime)
TimeSpan GetUtcOffset(DateTime dateTime, TimeZoneInfoOptions flags, CachedData cachedData)
TimeZoneInfo(string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName, string daylightDisplayName, AdjustmentRule[] adjustmentRules, bool disableDaylightSavingTime, bool hasIanaId=false)
TimeSpan GetUtcOffset(DateTime dateTime)
TimeSpan[] GetAmbiguousTimeOffsets(DateTime dateTime)
static bool GetIsDaylightSavings(DateTime time, AdjustmentRule rule, DaylightTimeStruct daylightTime)
DateTime ConvertToFromUtc(DateTime dateTime, TimeSpan daylightDelta, TimeSpan baseUtcOffsetDelta, bool convertToUtc)
bool Equals([NotNullWhen(true)] TimeZoneInfo? other)
static void PopulateAllSystemTimeZones(CachedData cachedData)
static TimeSpan GetUtcOffset(TimeSpan baseUtcOffset, AdjustmentRule adjustmentRule)
bool IsAmbiguousTime(DateTime dateTime, TimeZoneInfoOptions flags)
static bool GetIsAmbiguousTime(DateTime time, AdjustmentRule rule, DaylightTimeStruct daylightTime)
static bool TryConvertIanaIdToWindowsId(string ianaId, [NotNullWhen(true)] out string? windowsId)
bool IsDaylightSavingTime(DateTime dateTime, TimeZoneInfoOptions flags, CachedData cachedData)
static string GetUtcFullDisplayName(string timeZoneId, string standardDisplayName)
static DateTimeOffset ConvertTime(DateTimeOffset dateTimeOffset, TimeZoneInfo destinationTimeZone)
@ TimeZoneNotFoundException
@ InvalidTimeZoneException
static TimeSpan GetUtcOffset(DateTime time, TimeZoneInfo zone)
static void ValidateTimeZoneInfo(string id, TimeSpan baseUtcOffset, AdjustmentRule[] adjustmentRules, out bool adjustmentRulesSupportDst)
static TimeZoneInfoResult TryGetTimeZone(string id, bool dstDisabled, out TimeZoneInfo value, out Exception e, CachedData cachedData, bool alwaysFallbackToLocalMachine=false)
static bool TransitionTimeFromTimeZoneInformation(in Interop.Kernel32.REG_TZI_FORMAT timeZoneInformation, out TransitionTime transitionTime, bool readStartDate)
DateTime ConvertFromUtc(DateTime dateTime, TimeSpan daylightDelta, TimeSpan baseUtcOffsetDelta)
bool IsInvalidTime(DateTime dateTime)
static DateTime ConvertTimeToUtc(DateTime dateTime)
TimeZoneInfo(SerializationInfo info, StreamingContext context)
static DateTime ConvertTimeBySystemTimeZoneId(DateTime dateTime, string destinationTimeZoneId)
int CompareAdjustmentRuleToDateTime(AdjustmentRule rule, AdjustmentRule previousRule, DateTime dateTime, DateTime dateOnly, bool dateTimeisUtc)
static string GetLocalizedNameByMuiNativeResource(string resource)
AdjustmentRule GetAdjustmentRuleForAmbiguousOffsets(DateTime adjustedTime, out int? ruleIndex)
static unsafe bool TryGetTimeZoneEntryFromRegistry(RegistryKey key, string name, out Interop.Kernel32.REG_TZI_FORMAT dtzi)
static TimeSpan GetDateTimeNowUtcOffsetFromUtc(DateTime time, out bool isAmbiguousLocalDst)
void OnDeserialization(object? sender)
void GetObjectData(SerializationInfo info, StreamingContext context)
static readonly DateTimeOffset MaxValue
static readonly DateTimeOffset MinValue
override int GetHashCode()
static readonly DateTime MaxValue
static readonly DateTime MinValue
DateTime AddYears(int value)
static bool TryParseExact([NotNullWhen(true)] string? s, [NotNullWhen(true)] string? format, IFormatProvider? provider, DateTimeStyles style, out DateTime result)
static int DaysInMonth(int year, int month)
bool IsAmbiguousDaylightSavingTime()
DateTime AddDays(double value)
static readonly IntPtr Zero
static readonly TimeSpan Zero
int CompareTo(object? value)
static TimeSpan FromHours(double value)
TransitionTime GetNextTransitionTimeValue()
static void SerializeTransitionTime(TransitionTime time, ref ValueStringBuilder serializedText)
static void VerifyIsEscapableCharacter(char c)
static TimeZoneInfo GetDeserializedTimeZoneInfo(string source)
TimeSpan GetNextTimeSpanValue()
AdjustmentRule GetNextAdjustmentRuleValue()
AdjustmentRule[] GetNextAdjustmentRuleArrayValue()
void SkipVersionNextDataFields(int depth)
StringSerializer(string str)
int _currentTokenStartIndex
static void SerializeSubstitute(string text, ref ValueStringBuilder serializedText)
static string GetSerializedString(TimeZoneInfo zone)
DateTime GetNextDateTimeValue(string format)
string GetNextStringValue()
readonly string _serializedText
override int GetHashCode()
static TransitionTime CreateFixedDateRule(DateTime timeOfDay, int month, int day)
readonly bool _isFixedDateRule
override bool Equals([NotNullWhen(true)] object? obj)
bool Equals(TransitionTime other)
static void ValidateTransitionTime(DateTime timeOfDay, int month, int week, int day, DayOfWeek dayOfWeek)
static TransitionTime CreateFloatingDateRule(DateTime timeOfDay, int month, int week, DayOfWeek dayOfWeek)
TransitionTime(SerializationInfo info, StreamingContext context)
readonly DateTime _timeOfDay
TransitionTime(DateTime timeOfDay, int month, int week, int day, DayOfWeek dayOfWeek, bool isFixedDateRule)
static bool operator!=(TransitionTime t1, TransitionTime t2)
static bool operator==(TransitionTime t1, TransitionTime t2)
readonly DayOfWeek _dayOfWeek