From a11d6ce02f312b23ee26d7c74e716fa8a26ba66d Mon Sep 17 00:00:00 2001 From: yedajiang44 <602830483@qq.com> Date: Wed, 22 Sep 2021 16:30:44 +0800 Subject: [PATCH] =?UTF-8?q?UTC=E6=97=B6=E9=97=B4=E8=AF=BB=E5=86=99?= =?UTF-8?q?=E7=AE=80=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MessagePack/JT809MessagePackReader.cs | 9 +-------- .../MessagePack/JT809MessagePackWriter.cs | 13 +------------ 2 files changed, 2 insertions(+), 20 deletions(-) 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 ///