Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ConvertTime() [4/5]

static DateTime System.TimeZoneInfo.ConvertTime ( DateTime dateTime,
TimeZoneInfo sourceTimeZone,
TimeZoneInfo destinationTimeZone,
TimeZoneInfoOptions flags,
CachedData cachedData )
inlinestaticprivate

Definition at line 1309 of file TimeZoneInfo.cs.

1310 {
1311 if (sourceTimeZone == null)
1312 {
1313 throw new ArgumentNullException("sourceTimeZone");
1314 }
1315 if (destinationTimeZone == null)
1316 {
1317 throw new ArgumentNullException("destinationTimeZone");
1318 }
1320 if ((flags & TimeZoneInfoOptions.NoThrowOnInvalidTime) == 0 && dateTime.Kind != 0 && dateTime.Kind != correspondingKind)
1321 {
1322 throw new ArgumentException(SR.Argument_ConvertMismatch, "sourceTimeZone");
1323 }
1324 int? ruleIndex;
1325 AdjustmentRule adjustmentRuleForTime = sourceTimeZone.GetAdjustmentRuleForTime(dateTime, out ruleIndex);
1326 TimeSpan baseUtcOffset = sourceTimeZone.BaseUtcOffset;
1327 if (adjustmentRuleForTime != null)
1328 {
1329 baseUtcOffset += adjustmentRuleForTime.BaseUtcOffsetDelta;
1330 if (adjustmentRuleForTime.HasDaylightSaving)
1331 {
1332 bool flag = false;
1334 if ((flags & TimeZoneInfoOptions.NoThrowOnInvalidTime) == 0 && GetIsInvalidTime(dateTime, adjustmentRuleForTime, daylightTime))
1335 {
1336 throw new ArgumentException(SR.Argument_DateTimeIsInvalid, "dateTime");
1337 }
1340 }
1341 }
1344 {
1345 return dateTime;
1346 }
1347 long ticks = dateTime.Ticks - baseUtcOffset.Ticks;
1350 if (correspondingKind2 == DateTimeKind.Local)
1351 {
1352 return new DateTime(dateTime2.Ticks, DateTimeKind.Local, isAmbiguousLocalDst);
1353 }
1354 return new DateTime(dateTime2.Ticks, correspondingKind2);
1355 }
static bool GetIsInvalidTime(DateTime time, AdjustmentRule rule, DaylightTimeStruct daylightTime)
static DateTime ConvertUtcToTimeZone(long ticks, TimeZoneInfo destinationTimeZone, out bool isAmbiguousLocalDst)
static bool GetIsDaylightSavings(DateTime time, AdjustmentRule rule, DaylightTimeStruct daylightTime)

References System.SR.Argument_ConvertMismatch, System.SR.Argument_DateTimeIsInvalid, System.TimeZoneInfo.ConvertUtcToTimeZone(), System.DateTime, System.Runtime.Serialization.Dictionary, System.TimeZoneInfo.GetIsDaylightSavings(), System.TimeZoneInfo.GetIsInvalidTime(), and System.TimeSpan.Zero.