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

◆ FromBinary()

static DateTime System.DateTime.FromBinary ( long dateData)
inlinestatic

Definition at line 671 of file DateTime.cs.

672 {
673 if ((dateData & long.MinValue) != 0L)
674 {
675 long num = dateData & 0x3FFFFFFFFFFFFFFFL;
676 if (num > 4611685154427387904L)
677 {
678 num -= 4611686018427387904L;
679 }
680 bool isAmbiguousLocalDst = false;
681 long ticks;
682 if (num < 0)
683 {
684 ticks = TimeZoneInfo.GetLocalUtcOffset(MinValue, TimeZoneInfoOptions.NoThrowOnInvalidTime).Ticks;
685 }
686 else if (num > 3155378975999999999L)
687 {
688 ticks = TimeZoneInfo.GetLocalUtcOffset(MaxValue, TimeZoneInfoOptions.NoThrowOnInvalidTime).Ticks;
689 }
690 else
691 {
692 DateTime time = new DateTime(num, DateTimeKind.Utc);
693 ticks = TimeZoneInfo.GetUtcOffsetFromUtc(time, TimeZoneInfo.Local, out var _, out isAmbiguousLocalDst).Ticks;
694 }
695 num += ticks;
696 if (num < 0)
697 {
698 num += 864000000000L;
699 }
700 if ((ulong)num > 3155378975999999999uL)
701 {
702 throw new ArgumentException(SR.Argument_DateTimeBadBinaryData, "dateData");
703 }
704 return new DateTime(num, DateTimeKind.Local, isAmbiguousLocalDst);
705 }
706 if ((ulong)(dateData & 0x3FFFFFFFFFFFFFFFL) > 3155378975999999999uL)
707 {
708 throw new ArgumentException(SR.Argument_DateTimeBadBinaryData, "dateData");
709 }
710 return new DateTime((ulong)dateData);
711 }
static readonly DateTime MaxValue
Definition DateTime.cs:37
static readonly DateTime MinValue
Definition DateTime.cs:35

References System.SR.Argument_DateTimeBadBinaryData, System.DateTime, System.Runtime.Serialization.Dictionary, System.TimeZoneInfo.GetLocalUtcOffset(), System.TimeZoneInfo.GetUtcOffsetFromUtc(), System.L, System.TimeZoneInfo.Local, System.DateTime.MaxValue, and System.DateTime.MinValue.

Referenced by System.Resources.ResourceReader._LoadObjectV2(), Terraria.IO.WorldFile.GetAllMetadata(), Terraria.IO.WorldFile.LoadHeader(), System.Xml.XmlBufferReader.ReadDateTime(), and System.Xml.XmlConverter.ToDateTime().