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

◆ DateTimeOffsetTimeZonePostProcessing()

static bool System.DateTimeParse.DateTimeOffsetTimeZonePostProcessing ( ref DateTimeResult result,
DateTimeStyles styles )
inlinestaticprivate

Definition at line 2495 of file DateTimeParse.cs.

2496 {
2497 if ((result.flags & ParseFlags.TimeZoneUsed) == 0)
2498 {
2499 if ((styles & DateTimeStyles.AssumeUniversal) != 0)
2500 {
2501 result.timeZoneOffset = TimeSpan.Zero;
2502 }
2503 else
2504 {
2505 result.timeZoneOffset = TimeZoneInfo.GetLocalUtcOffset(result.parsedDate, TimeZoneInfoOptions.NoThrowOnInvalidTime);
2506 }
2507 }
2508 long ticks = result.timeZoneOffset.Ticks;
2509 long num = result.parsedDate.Ticks - ticks;
2510 if (num < 0 || num > 3155378975999999999L)
2511 {
2512 result.SetFailure(ParseFailureKind.FormatWithOriginalDateTime, "Format_UTCOutOfRange");
2513 return false;
2514 }
2515 if (ticks < -504000000000L || ticks > 504000000000L)
2516 {
2517 result.SetFailure(ParseFailureKind.FormatWithOriginalDateTime, "Format_OffsetOutOfRange");
2518 return false;
2519 }
2520 if ((styles & DateTimeStyles.AdjustToUniversal) != 0)
2521 {
2522 if ((result.flags & ParseFlags.TimeZoneUsed) == 0 && (styles & DateTimeStyles.AssumeUniversal) == 0)
2523 {
2524 bool result2 = AdjustTimeZoneToUniversal(ref result);
2525 result.timeZoneOffset = TimeSpan.Zero;
2526 return result2;
2527 }
2528 result.parsedDate = new DateTime(num, DateTimeKind.Utc);
2529 result.timeZoneOffset = TimeSpan.Zero;
2530 }
2531 return true;
2532 }
static bool AdjustTimeZoneToUniversal(ref DateTimeResult result)

References System.DateTimeParse.AdjustTimeZoneToUniversal(), System.DateTime, System.TimeZoneInfo.GetLocalUtcOffset(), System.L, and System.TimeSpan.Zero.

Referenced by System.DateTimeParse.DetermineTimeZoneAdjustments().