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

◆ AdjustTimeZoneToLocal()

static bool System.DateTimeParse.AdjustTimeZoneToLocal ( ref DateTimeResult result,
bool bTimeOnly )
inlinestaticprivate

Definition at line 2551 of file DateTimeParse.cs.

2552 {
2553 long ticks = result.parsedDate.Ticks;
2554 TimeZoneInfo local = TimeZoneInfo.Local;
2555 bool isAmbiguousLocalDst = false;
2556 if (ticks < 864000000000L)
2557 {
2558 ticks -= result.timeZoneOffset.Ticks;
2559 ticks += local.GetUtcOffset(bTimeOnly ? DateTime.Now : result.parsedDate, TimeZoneInfoOptions.NoThrowOnInvalidTime).Ticks;
2560 if (ticks < 0)
2561 {
2562 ticks += 864000000000L;
2563 }
2564 }
2565 else
2566 {
2567 ticks -= result.timeZoneOffset.Ticks;
2568 if (ticks < 0 || ticks > 3155378975999999999L)
2569 {
2570 ticks += local.GetUtcOffset(result.parsedDate, TimeZoneInfoOptions.NoThrowOnInvalidTime).Ticks;
2571 }
2572 else
2573 {
2574 DateTime time = new DateTime(ticks, DateTimeKind.Utc);
2575 ticks += TimeZoneInfo.GetUtcOffsetFromUtc(time, TimeZoneInfo.Local, out var _, out isAmbiguousLocalDst).Ticks;
2576 }
2577 }
2578 if (ticks < 0 || ticks > 3155378975999999999L)
2579 {
2580 result.parsedDate = DateTime.MinValue;
2581 result.SetFailure(ParseFailureKind.FormatWithOriginalDateTime, "Format_DateOutOfRange");
2582 return false;
2583 }
2584 result.parsedDate = new DateTime(ticks, DateTimeKind.Local, isAmbiguousLocalDst);
2585 return true;
2586 }

References System.DateTime, System.TimeZoneInfo.GetUtcOffset(), System.TimeZoneInfo.GetUtcOffsetFromUtc(), System.L, System.TimeZoneInfo.Local, System.DateTime.MinValue, System.DateTime.Now, and System.TimeSpan.Ticks.

Referenced by System.DateTimeParse.DetermineTimeZoneAdjustments().