570 {
572 {
573 value =
default(DateTimeOffset);
574 bytesConsumed = 0;
576 return false;
577 }
578 uint num = (uint)(
source[0] - 48);
579 uint num2 = (uint)(
source[1] - 48);
580 uint num3 = (uint)(
source[2] - 48);
581 uint num4 = (uint)(
source[3] - 48);
582 if (num > 9 || num2 > 9 || num3 > 9 || num4 > 9)
583 {
584 value =
default(DateTimeOffset);
585 bytesConsumed = 0;
587 return false;
588 }
589 int year = (int)(num * 1000 + num2 * 100 + num3 * 10 + num4);
591 {
592 value =
default(DateTimeOffset);
593 bytesConsumed = 0;
595 return false;
596 }
597 uint num5 = (uint)(
source[5] - 48);
598 uint num6 = (uint)(
source[6] - 48);
599 if (num5 > 9 || num6 > 9)
600 {
601 value =
default(DateTimeOffset);
602 bytesConsumed = 0;
604 return false;
605 }
606 int month = (int)(num5 * 10 + num6);
608 {
609 value =
default(DateTimeOffset);
610 bytesConsumed = 0;
612 return false;
613 }
614 uint num7 = (uint)(
source[8] - 48);
615 uint num8 = (uint)(
source[9] - 48);
616 if (num7 > 9 || num8 > 9)
617 {
618 value =
default(DateTimeOffset);
619 bytesConsumed = 0;
621 return false;
622 }
623 int day = (int)(num7 * 10 + num8);
625 {
626 value =
default(DateTimeOffset);
627 bytesConsumed = 0;
629 return false;
630 }
631 uint num9 = (uint)(
source[11] - 48);
632 uint num10 = (uint)(
source[12] - 48);
633 if (num9 > 9 || num10 > 9)
634 {
635 value =
default(DateTimeOffset);
636 bytesConsumed = 0;
638 return false;
639 }
640 int hour = (int)(num9 * 10 + num10);
642 {
643 value =
default(DateTimeOffset);
644 bytesConsumed = 0;
646 return false;
647 }
648 uint num11 = (uint)(
source[14] - 48);
649 uint num12 = (uint)(
source[15] - 48);
650 if (num11 > 9 || num12 > 9)
651 {
652 value =
default(DateTimeOffset);
653 bytesConsumed = 0;
655 return false;
656 }
657 int minute = (int)(num11 * 10 + num12);
659 {
660 value =
default(DateTimeOffset);
661 bytesConsumed = 0;
663 return false;
664 }
665 uint num13 = (uint)(
source[17] - 48);
666 uint num14 = (uint)(
source[18] - 48);
667 if (num13 > 9 || num14 > 9)
668 {
669 value =
default(DateTimeOffset);
670 bytesConsumed = 0;
672 return false;
673 }
674 int second = (int)(num13 * 10 + num14);
676 {
677 value =
default(DateTimeOffset);
678 bytesConsumed = 0;
680 return false;
681 }
682 uint num15 = (uint)(
source[20] - 48);
683 uint num16 = (uint)(
source[21] - 48);
684 uint num17 = (uint)(
source[22] - 48);
685 uint num18 = (uint)(
source[23] - 48);
686 uint num19 = (uint)(
source[24] - 48);
687 uint num20 = (uint)(
source[25] - 48);
688 uint num21 = (uint)(
source[26] - 48);
689 if (num15 > 9 || num16 > 9 || num17 > 9 || num18 > 9 || num19 > 9 || num20 > 9 || num21 > 9)
690 {
691 value =
default(DateTimeOffset);
692 bytesConsumed = 0;
694 return false;
695 }
696 int fraction = (int)(num15 * 1000000 + num16 * 100000 + num17 * 10000 + num18 * 1000 + num19 * 100 + num20 * 10 + num21);
698 if (b != 90 && b != 43 && b != 45)
699 {
701 {
702 value =
default(DateTimeOffset);
703 bytesConsumed = 0;
705 return false;
706 }
707 bytesConsumed = 27;
709 return true;
710 }
711 if (b == 90)
712 {
713 if (!
TryCreateDateTimeOffset(
year, month, day, hour, minute, second, fraction, offsetNegative: false, 0, 0, out
value))
714 {
715 value =
default(DateTimeOffset);
716 bytesConsumed = 0;
718 return false;
719 }
720 bytesConsumed = 28;
722 return true;
723 }
725 {
726 value =
default(DateTimeOffset);
727 bytesConsumed = 0;
729 return false;
730 }
731 uint num22 = (uint)(
source[28] - 48);
732 uint num23 = (uint)(
source[29] - 48);
733 if (num22 > 9 || num23 > 9)
734 {
735 value =
default(DateTimeOffset);
736 bytesConsumed = 0;
738 return false;
739 }
740 int offsetHours = (int)(num22 * 10 + num23);
742 {
743 value =
default(DateTimeOffset);
744 bytesConsumed = 0;
746 return false;
747 }
748 uint num24 = (uint)(
source[31] - 48);
749 uint num25 = (uint)(
source[32] - 48);
750 if (num24 > 9 || num25 > 9)
751 {
752 value =
default(DateTimeOffset);
753 bytesConsumed = 0;
755 return false;
756 }
757 int offsetMinutes = (int)(num24 * 10 + num25);
758 if (!
TryCreateDateTimeOffset(
year, month, day, hour, minute, second, fraction, b == 45, offsetHours, offsetMinutes, out
value))
759 {
760 value =
default(DateTimeOffset);
761 bytesConsumed = 0;
763 return false;
764 }
765 bytesConsumed = 33;
767 return true;
768 }
static bool TryCreateDateTimeOffset(DateTime dateTime, bool offsetNegative, int offsetHours, int offsetMinutes, out DateTimeOffset value)
static bool TryCreateDateTimeOffsetInterpretingDataAsLocalTime(int year, int month, int day, int hour, int minute, int second, int fraction, out DateTimeOffset value)