diff --git a/src/JT809.Protocol/MessagePack/JT809MessagePackReader.cs b/src/JT809.Protocol/MessagePack/JT809MessagePackReader.cs index f65ec22..c49f0cf 100644 --- a/src/JT809.Protocol/MessagePack/JT809MessagePackReader.cs +++ b/src/JT809.Protocol/MessagePack/JT809MessagePackReader.cs @@ -391,14 +391,7 @@ namespace JT809.Protocol.MessagePack DateTime d; try { - ulong result = 0; - var readOnlySpan = GetReadOnlySpan(8); - for (int i = 0; i < 8; i++) - { - ulong currentData = (ulong)readOnlySpan[i] << (8 * (8 - i - 1)); - result += currentData; - } - d = JT809Constants.UTCBaseTime.AddSeconds(result).AddHours(8); + d = JT809Constants.UTCBaseTime.AddSeconds(ReadUInt64()).AddHours(8); } catch (Exception) { diff --git a/src/JT809.Protocol/MessagePack/JT809MessagePackWriter.cs b/src/JT809.Protocol/MessagePack/JT809MessagePackWriter.cs index c5bbe36..4f7089f 100644 --- a/src/JT809.Protocol/MessagePack/JT809MessagePackWriter.cs +++ b/src/JT809.Protocol/MessagePack/JT809MessagePackWriter.cs @@ -229,18 +229,7 @@ namespace JT809.Protocol.MessagePack span[4] = (byte)(value.Millisecond); writer.Advance(5); } - public void WriteUTCDateTime(DateTime value) - { - ulong totalSecends = (ulong)(value.AddHours(-8) - JT809Constants.UTCBaseTime).TotalSeconds; - var span = writer.Free; - //高位在前 - for (int i = 7; i >= 0; i--) - { - span[i] = (byte)(totalSecends & 0xFF); //取低8位 - totalSecends >>= 8; - } - writer.Advance(8); - } + public void WriteUTCDateTime(DateTime value)=>WriteUInt64((ulong)(value.AddHours(-8) - JT809Constants.UTCBaseTime).TotalSeconds); /// /// YYYYMMDD ///