diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/JT808.Protocol.Extensions.JT1078.xml b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/JT808.Protocol.Extensions.JT1078.xml
index a001b22..94309f9 100644
--- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/JT808.Protocol.Extensions.JT1078.xml
+++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/JT808.Protocol.Extensions.JT1078.xml
@@ -1926,6 +1926,30 @@
             任务执行条件
             </summary>
         </member>
+        <member name="M:JT808.Protocol.Extensions.JT1078.MessageBody.JT808_0x9206.Analyze(JT808.Protocol.MessagePack.JT808MessagePackReader@,System.Text.Json.Utf8JsonWriter,JT808.Protocol.IJT808Config)">
+            <summary>
+            
+            </summary>
+            <param name="reader"></param>
+            <param name="writer"></param>
+            <param name="config"></param>
+        </member>
+        <member name="M:JT808.Protocol.Extensions.JT1078.MessageBody.JT808_0x9206.Deserialize(JT808.Protocol.MessagePack.JT808MessagePackReader@,JT808.Protocol.IJT808Config)">
+            <summary>
+            
+            </summary>
+            <param name="reader"></param>
+            <param name="config"></param>
+            <returns></returns>
+        </member>
+        <member name="M:JT808.Protocol.Extensions.JT1078.MessageBody.JT808_0x9206.Serialize(JT808.Protocol.MessagePack.JT808MessagePackWriter@,JT808.Protocol.Extensions.JT1078.MessageBody.JT808_0x9206,JT808.Protocol.IJT808Config)">
+            <summary>
+            
+            </summary>
+            <param name="writer"></param>
+            <param name="value"></param>
+            <param name="config"></param>
+        </member>
         <member name="T:JT808.Protocol.Extensions.JT1078.MessageBody.JT808_0x9207">
             <summary>
             文件上传控制
diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x1005.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x1005.cs
index a8889ff..c705a53 100644
--- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x1005.cs
+++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x1005.cs
@@ -46,9 +46,9 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
         public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
         {
             JT808_0x1005 value = new JT808_0x1005();
-            value.BeginTime = reader.ReadDateTime6();
+            value.BeginTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.BeginTime.ToString("yyMMddHHmmss")}]开始时间", value.BeginTime.ToString("yyyy-MM-dd HH:mm:ss"));
-            value.EndTime = reader.ReadDateTime6();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.EndTime.ToString("yyMMddHHmmss")}]结束时间", value.EndTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.GettingOnNumber = reader.ReadUInt16();
             writer.WriteNumber($"[{value.GettingOnNumber.ReadNumber()}]从开始时间到结束时间的上车人数",value.GettingOnNumber);
@@ -64,8 +64,8 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
         public JT808_0x1005 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             JT808_0x1005 jT808_0x1005 = new JT808_0x1005();
-            jT808_0x1005.BeginTime = reader.ReadDateTime6();
-            jT808_0x1005.EndTime = reader.ReadDateTime6();
+            jT808_0x1005.BeginTime = reader.ReadDateTime_yyMMddHHmmss();
+            jT808_0x1005.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             jT808_0x1005.GettingOnNumber = reader.ReadUInt16();
             jT808_0x1005.GettingOffNumber = reader.ReadUInt16();
             return jT808_0x1005;
@@ -78,8 +78,8 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
         /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_0x1005 value, IJT808Config config)
         {
-            writer.WriteDateTime6(value.BeginTime);
-            writer.WriteDateTime6(value.EndTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.BeginTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.EndTime);
             writer.WriteUInt16(value.GettingOnNumber);
             writer.WriteUInt16(value.GettingOffNumber);
         }
diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x1205_AVResouce.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x1205_AVResouce.cs
index 0c7b704..2ceccee 100644
--- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x1205_AVResouce.cs
+++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x1205_AVResouce.cs
@@ -56,9 +56,9 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
             JT808_0x1205_AVResouce value = new JT808_0x1205_AVResouce();
             value.LogicChannelNo = reader.ReadByte();
             writer.WriteString($"[{value.LogicChannelNo.ReadNumber()}]逻辑通道号", LogicalChannelNoDisplay(value.LogicChannelNo));
-            value.BeginTime = reader.ReadDateTime6();
+            value.BeginTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.BeginTime.ToString("yyMMddHHmmss")}]开始时间", value.BeginTime.ToString("yyyy-MM-dd HH:mm:ss"));
-            value.BeginTime = reader.ReadDateTime6();
+            value.BeginTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.BeginTime.ToString("yyMMddHHmmss")}]开始时间", value.BeginTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.AlarmFlag = reader.ReadUInt32();
             writer.WriteNumber($"[{value.AlarmFlag.ReadNumber()}]报警标志", value.AlarmFlag);//此处的报警标志不是很明白
@@ -156,8 +156,8 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
         {
             JT808_0x1205_AVResouce jT808_0x1205_AVResouce = new JT808_0x1205_AVResouce();
             jT808_0x1205_AVResouce.LogicChannelNo = reader.ReadByte();
-            jT808_0x1205_AVResouce.BeginTime = reader.ReadDateTime6();
-            jT808_0x1205_AVResouce.EndTime = reader.ReadDateTime6();
+            jT808_0x1205_AVResouce.BeginTime = reader.ReadDateTime_yyMMddHHmmss();
+            jT808_0x1205_AVResouce.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             jT808_0x1205_AVResouce.AlarmFlag = reader.ReadUInt64();
             jT808_0x1205_AVResouce.AVResourceType = reader.ReadByte();
             jT808_0x1205_AVResouce.StreamType = reader.ReadByte();
@@ -174,8 +174,8 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
         public void Serialize(ref JT808MessagePackWriter writer, JT808_0x1205_AVResouce value, IJT808Config config)
         {
             writer.WriteByte(value.LogicChannelNo);
-            writer.WriteDateTime6(value.BeginTime);
-            writer.WriteDateTime6(value.EndTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.BeginTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.EndTime);
             writer.WriteUInt64(value.AlarmFlag);
             writer.WriteByte(value.AVResourceType);
             writer.WriteByte(value.StreamType);
diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9201.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9201.cs
index 3aeff31..852ac43 100644
--- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9201.cs
+++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9201.cs
@@ -118,9 +118,9 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
             writer.WriteString($"[{value.PlaybackWay.ReadNumber()}]回访方式", PlayBackWayDisplay(value.PlaybackWay));
             value.PlaySpeed = reader.ReadByte();
             writer.WriteString($"[{value.PlaySpeed.ReadNumber()}]快进或快退倍数", FastForwardOrFastRewindMultiplesDisplay(value.PlaySpeed));
-            value.BeginTime = reader.ReadDateTime6();
+            value.BeginTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.BeginTime:yyMMddHHmmss}]起始时间", value.BeginTime.ToString("yyyy-MM-dd HH:mm:ss"));
-            value.EndTime = reader.ReadDateTime6();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.EndTime:yyMMddHHmmss}]结束时间", value.EndTime.ToString("yyyy-MM-dd HH:mm:ss"));
             static string AVItemTypeDisplay(byte AVItemType)
             {
@@ -220,8 +220,8 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
             jT808_0x9201.MemoryType = reader.ReadByte();
             jT808_0x9201.PlaybackWay = reader.ReadByte();
             jT808_0x9201.PlaySpeed = reader.ReadByte();
-            jT808_0x9201.BeginTime = reader.ReadDateTime6();
-            jT808_0x9201.EndTime = reader.ReadDateTime6();
+            jT808_0x9201.BeginTime = reader.ReadDateTime_yyMMddHHmmss();
+            jT808_0x9201.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             return jT808_0x9201;
         }
 
@@ -244,8 +244,8 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
             writer.WriteByte(value.MemoryType);
             writer.WriteByte(value.PlaybackWay);
             writer.WriteByte(value.PlaySpeed);
-            writer.WriteDateTime6(value.BeginTime);
-            writer.WriteDateTime6(value.EndTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.BeginTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.EndTime);
         }
     }
 }
diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9202.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9202.cs
index f7a67fe..80bbc7e 100644
--- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9202.cs
+++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9202.cs
@@ -61,7 +61,7 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
             writer.WriteString($"[{value.PlayControl.ReadNumber()}]回放控制", PlayBackControlDisplay(value.PlayControl));
             value.PlaySpeed = reader.ReadByte();
             writer.WriteString($"[{value.PlaySpeed.ReadNumber()}]快进或快退倍数", FastForwardOrFastRewindMultiplesDisplay(value.PlaySpeed));
-            value.DragPlayPosition = reader.ReadDateTime6();
+            value.DragPlayPosition = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.DragPlayPosition.ToString("yyMMddHHmmss")}]拖动回放位置", value.DragPlayPosition.ToString("yyyy-MM-dd HH:mm:ss"));
             static string AVChannelNoDisplay(byte LogicalChannelNo)
             {
@@ -124,7 +124,7 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
             jT808_0x9202.ChannelNo = reader.ReadByte();
             jT808_0x9202.PlayControl = reader.ReadByte();
             jT808_0x9202.PlaySpeed = reader.ReadByte();
-            jT808_0x9202.DragPlayPosition = reader.ReadDateTime6();
+            jT808_0x9202.DragPlayPosition = reader.ReadDateTime_yyMMddHHmmss();
             return jT808_0x9202;
         }
         /// <summary>
@@ -138,7 +138,7 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
             writer.WriteByte(value.ChannelNo);
             writer.WriteByte(value.PlayControl);
             writer.WriteByte(value.PlaySpeed);
-            writer.WriteDateTime6(value.DragPlayPosition);
+            writer.WriteDateTime_yyMMddHHmmss(value.DragPlayPosition);
         }
     }
 }
diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9205.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9205.cs
index a882789..64c5f95 100644
--- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9205.cs
+++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9205.cs
@@ -61,9 +61,9 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
             JT808_0x9205 value = new JT808_0x9205();
             value.ChannelNo = reader.ReadByte();
             writer.WriteString($"[{value.ChannelNo.ReadNumber()}]逻辑通道号", LogicalChannelNoDisplay(value.ChannelNo));
-            value.BeginTime = reader.ReadDateTime6();
+            value.BeginTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.BeginTime.ToString("yyMMddHHmmss")}]起始时间", value.BeginTime.ToString("yyyy-MM-dd HH:mm:ss"));
-            value.EndTime = reader.ReadDateTime6();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.EndTime.ToString("yyMMddHHmmss")}]起始时间", value.EndTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.AlarmFlag = reader.ReadUInt64();
             writer.WriteNumber($"[{value.AlarmFlag.ReadNumber()}]报警标志", value.AlarmFlag);
@@ -133,8 +133,8 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
         {
             var jT808_0x9205 = new JT808_0x9205();
             jT808_0x9205.ChannelNo = reader.ReadByte();
-            jT808_0x9205.BeginTime = reader.ReadDateTime6();
-            jT808_0x9205.EndTime = reader.ReadDateTime6();
+            jT808_0x9205.BeginTime = reader.ReadDateTime_yyMMddHHmmss();
+            jT808_0x9205.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             jT808_0x9205.AlarmFlag = reader.ReadUInt64();
             jT808_0x9205.MediaType = reader.ReadByte();
             jT808_0x9205.StreamType = reader.ReadByte();
@@ -145,8 +145,8 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
         public void Serialize(ref JT808MessagePackWriter writer, JT808_0x9205 value, IJT808Config config)
         {
             writer.WriteByte(value.ChannelNo);
-            writer.WriteDateTime6(value.BeginTime);
-            writer.WriteDateTime6(value.EndTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.BeginTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.EndTime);
             writer.WriteUInt64(value.AlarmFlag);
             writer.WriteByte(value.MediaType);
             writer.WriteByte(value.StreamType);
diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9206.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9206.cs
index 583cba9..f36d0fd 100644
--- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9206.cs
+++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9206.cs
@@ -90,7 +90,12 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
         /// </summary>
         public byte TaskExcuteCondition { get; set; }
 
-#pragma warning disable CS1591 // 缺少对公共可见类型或成员的 XML 注释
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="reader"></param>
+        /// <param name="writer"></param>
+        /// <param name="config"></param>
         public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
         {
             JT808_0x9206 value = new JT808_0x9206();
@@ -119,9 +124,9 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
 
             value.ChannelNo = reader.ReadByte();
             writer.WriteString($"[{value.ChannelNo.ReadNumber()}]逻辑通道号", LogicalChannelNoDisplay(value.ChannelNo));
-            value.BeginTime = reader.ReadDateTime6();
+            value.BeginTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.BeginTime.ToString("yyMMddHHmmss")}]起始时间", value.BeginTime.ToString("yyyy-MM-dd HH:mm:ss"));
-            value.EndTime = reader.ReadDateTime6();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.EndTime.ToString("yyMMddHHmmss")}]起始时间", value.EndTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.AlarmFlag = reader.ReadUInt64();
             writer.WriteNumber($"[{value.AlarmFlag.ReadNumber()}]报警标志", value.AlarmFlag);
@@ -195,7 +200,12 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
                 return taskExcuteConditionDisplay.Length > 0 ? taskExcuteConditionDisplay.Substring(1) : "";
             }
         }
-
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="reader"></param>
+        /// <param name="config"></param>
+        /// <returns></returns>
         public JT808_0x9206 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             var jT808_0x9206 = new JT808_0x9206();
@@ -209,8 +219,8 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
             jT808_0x9206.FileUploadPathLength = reader.ReadByte();
             jT808_0x9206.FileUploadPath = reader.ReadString(jT808_0x9206.FileUploadPathLength);
             jT808_0x9206.ChannelNo = reader.ReadByte();
-            jT808_0x9206.BeginTime = reader.ReadDateTime6();
-            jT808_0x9206.EndTime = reader.ReadDateTime6();
+            jT808_0x9206.BeginTime = reader.ReadDateTime_yyMMddHHmmss();
+            jT808_0x9206.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             jT808_0x9206.AlarmFlag = reader.ReadUInt64();
             jT808_0x9206.MediaType = reader.ReadByte();
             jT808_0x9206.StreamType = reader.ReadByte();
@@ -218,7 +228,12 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
             jT808_0x9206.TaskExcuteCondition = reader.ReadByte();
             return jT808_0x9206;
         }
-
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="writer"></param>
+        /// <param name="value"></param>
+        /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_0x9206 value, IJT808Config config)
         {
             writer.Skip(1, out int serverIpLengthposition);
@@ -235,14 +250,13 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody
             writer.WriteString(value.FileUploadPath);
             writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - fileUploadPathLengthLengthposition - 1), fileUploadPathLengthLengthposition);
             writer.WriteByte(value.ChannelNo);
-            writer.WriteDateTime6(value.BeginTime);
-            writer.WriteDateTime6(value.EndTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.BeginTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.EndTime);
             writer.WriteUInt64(value.AlarmFlag);
             writer.WriteByte(value.MediaType);
             writer.WriteByte(value.StreamType);
             writer.WriteByte(value.MemoryPositon);
             writer.WriteByte(value.TaskExcuteCondition);
         }
-#pragma warning restore CS1591 // 缺少对公共可见类型或成员的 XML 注释
     }
 }
diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x0200_0x64.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x0200_0x64.cs
index beb9332..1bc5fd7 100644
--- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x0200_0x64.cs
+++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x0200_0x64.cs
@@ -234,7 +234,7 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             writer.WriteNumber($"[{value.Latitude.ReadNumber()}]纬度", value.Latitude);
             value.Longitude = (int)reader.ReadUInt32();
             writer.WriteNumber($"[{value.Longitude.ReadNumber()}]经度", value.Longitude);
-            value.AlarmTime = reader.ReadDateTime6();
+            value.AlarmTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.AlarmTime.ToString("yyMMddHHmmss")}]日期时间", value.AlarmTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.VehicleState = reader.ReadUInt16();
             writer.WriteNumber($"[{value.VehicleState.ReadNumber()}]车辆状态", value.VehicleState);
@@ -260,7 +260,7 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             value.AlarmIdentification = new AlarmIdentificationProperty();
             string terminalIDHex = reader.ReadVirtualArray(7).ToArray().ToHexString();
             value.AlarmIdentification.TerminalID = reader.ReadString(7);
-            value.AlarmIdentification.Time = reader.ReadDateTime6();
+            value.AlarmIdentification.Time = reader.ReadDateTime_yyMMddHHmmss();
             value.AlarmIdentification.SN = reader.ReadByte();
             value.AlarmIdentification.AttachCount = reader.ReadByte();
             value.AlarmIdentification.Retain = reader.ReadByte();
@@ -294,12 +294,12 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             value.Altitude = reader.ReadUInt16();
             value.Latitude = (int)reader.ReadUInt32();
             value.Longitude = (int)reader.ReadUInt32();
-            value.AlarmTime = reader.ReadDateTime6();
+            value.AlarmTime = reader.ReadDateTime_yyMMddHHmmss();
             value.VehicleState = reader.ReadUInt16();
             value.AlarmIdentification = new AlarmIdentificationProperty
             {
                 TerminalID = reader.ReadString(7),
-                Time = reader.ReadDateTime6(),
+                Time = reader.ReadDateTime_yyMMddHHmmss(),
                 SN = reader.ReadByte(),
                 AttachCount = reader.ReadByte(),
                 Retain = reader.ReadByte()
@@ -329,13 +329,13 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             writer.WriteUInt16(value.Altitude);
             writer.WriteUInt32((uint)value.Latitude);
             writer.WriteUInt32((uint)value.Longitude);
-            writer.WriteDateTime6(value.AlarmTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmTime);
             writer.WriteUInt16(value.VehicleState);
             if (value.AlarmIdentification == null) {
                 throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空");
             }
             writer.WriteString(value.AlarmIdentification.TerminalID);
-            writer.WriteDateTime6(value.AlarmIdentification.Time);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmIdentification.Time);
             writer.WriteByte(value.AlarmIdentification.SN);
             writer.WriteByte(value.AlarmIdentification.AttachCount);
             writer.WriteByte(value.AlarmIdentification.Retain);
diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x0200_0x65.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x0200_0x65.cs
index ef6efc2..3158eea 100644
--- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x0200_0x65.cs
+++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x0200_0x65.cs
@@ -186,7 +186,7 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             writer.WriteNumber($"[{value.Latitude.ReadNumber()}]纬度", value.Latitude);
             value.Longitude = (int)reader.ReadUInt32();
             writer.WriteNumber($"[{value.Longitude.ReadNumber()}]经度", value.Longitude);
-            value.AlarmTime = reader.ReadDateTime6();
+            value.AlarmTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.AlarmTime.ToString("yyMMddHHmmss")}]日期时间", value.AlarmTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.VehicleState = reader.ReadUInt16();
             writer.WriteNumber($"[{value.VehicleState.ReadNumber()}]车辆状态", value.VehicleState);
@@ -212,7 +212,7 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             value.AlarmIdentification = new AlarmIdentificationProperty();
             string terminalIDHex = reader.ReadVirtualArray(7).ToArray().ToHexString();
             value.AlarmIdentification.TerminalID = reader.ReadString(7);
-            value.AlarmIdentification.Time = reader.ReadDateTime6();
+            value.AlarmIdentification.Time = reader.ReadDateTime_yyMMddHHmmss();
             value.AlarmIdentification.SN = reader.ReadByte();
             value.AlarmIdentification.AttachCount = reader.ReadByte();
             value.AlarmIdentification.Retain = reader.ReadByte();
@@ -243,12 +243,12 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             value.Altitude = reader.ReadUInt16();
             value.Latitude = (int)reader.ReadUInt32();
             value.Longitude = (int)reader.ReadUInt32();
-            value.AlarmTime = reader.ReadDateTime6();
+            value.AlarmTime = reader.ReadDateTime_yyMMddHHmmss();
             value.VehicleState = reader.ReadUInt16();
             value.AlarmIdentification = new AlarmIdentificationProperty
             {
                 TerminalID = reader.ReadString(7),
-                Time = reader.ReadDateTime6(),
+                Time = reader.ReadDateTime_yyMMddHHmmss(),
                 SN = reader.ReadByte(),
                 AttachCount = reader.ReadByte(),
                 Retain = reader.ReadByte()
@@ -272,21 +272,21 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             writer.WriteByte(value.Fatigue);
             if (value.Retain.Length != 4)
             {
-                throw new ArgumentOutOfRangeException($"{nameof(JT808_0x0200_0x65.Retain)} length==4");
+                throw new ArgumentOutOfRangeException($"{nameof(value.Retain)} length==4");
             }
             writer.WriteArray(value.Retain);
             writer.WriteByte(value.Speed);
             writer.WriteUInt16(value.Altitude);
             writer.WriteUInt32((uint)value.Latitude);
             writer.WriteUInt32((uint)value.Longitude);
-            writer.WriteDateTime6(value.AlarmTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmTime);
             writer.WriteUInt16(value.VehicleState);
             if (value.AlarmIdentification == null)
             {
                 throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空");
             }
             writer.WriteString(value.AlarmIdentification.TerminalID);
-            writer.WriteDateTime6(value.AlarmIdentification.Time);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmIdentification.Time);
             writer.WriteByte(value.AlarmIdentification.SN);
             writer.WriteByte(value.AlarmIdentification.AttachCount);
             writer.WriteByte(value.AlarmIdentification.Retain);
diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x0200_0x66.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x0200_0x66.cs
index cbce584..4b65974 100644
--- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x0200_0x66.cs
+++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x0200_0x66.cs
@@ -107,7 +107,7 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             writer.WriteNumber($"[{value.Latitude.ReadNumber()}]纬度", value.Latitude);
             value.Longitude = (int)reader.ReadUInt32();
             writer.WriteNumber($"[{value.Longitude.ReadNumber()}]经度", value.Longitude);
-            value.AlarmTime = reader.ReadDateTime6();
+            value.AlarmTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.AlarmTime.ToString("yyMMddHHmmss")}]日期时间", value.AlarmTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.VehicleState = reader.ReadUInt16();
             writer.WriteNumber($"[{value.VehicleState.ReadNumber()}]车辆状态", value.VehicleState);
@@ -133,7 +133,7 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             value.AlarmIdentification = new AlarmIdentificationProperty();
             string terminalIDHex = reader.ReadVirtualArray(7).ToArray().ToHexString();
             value.AlarmIdentification.TerminalID = reader.ReadString(7);
-            value.AlarmIdentification.Time = reader.ReadDateTime6();
+            value.AlarmIdentification.Time = reader.ReadDateTime_yyMMddHHmmss();
             value.AlarmIdentification.SN = reader.ReadByte();
             value.AlarmIdentification.AttachCount = reader.ReadByte();
             value.AlarmIdentification.Retain = reader.ReadByte();
@@ -240,12 +240,12 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             value.Altitude = reader.ReadUInt16();
             value.Latitude = (int)reader.ReadUInt32();
             value.Longitude = (int)reader.ReadUInt32();
-            value.AlarmTime = reader.ReadDateTime6();
+            value.AlarmTime = reader.ReadDateTime_yyMMddHHmmss();
             value.VehicleState = reader.ReadUInt16();
             value.AlarmIdentification = new AlarmIdentificationProperty
             {
                 TerminalID = reader.ReadString(7),
-                Time = reader.ReadDateTime6(),
+                Time = reader.ReadDateTime_yyMMddHHmmss(),
                 SN = reader.ReadByte(),
                 AttachCount = reader.ReadByte(),
                 Retain = reader.ReadByte()
@@ -283,14 +283,14 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             writer.WriteUInt16(value.Altitude);
             writer.WriteUInt32((uint)value.Latitude);
             writer.WriteUInt32((uint)value.Longitude);
-            writer.WriteDateTime6(value.AlarmTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmTime);
             writer.WriteUInt16(value.VehicleState);
             if (value.AlarmIdentification == null)
             {
                 throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空");
             }
             writer.WriteString(value.AlarmIdentification.TerminalID);
-            writer.WriteDateTime6(value.AlarmIdentification.Time);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmIdentification.Time);
             writer.WriteByte(value.AlarmIdentification.SN);
             writer.WriteByte(value.AlarmIdentification.AttachCount);
             writer.WriteByte(value.AlarmIdentification.Retain);
diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x0200_0x67.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x0200_0x67.cs
index 118d285..237ddfa 100644
--- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x0200_0x67.cs
+++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x0200_0x67.cs
@@ -178,7 +178,7 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             writer.WriteNumber($"[{value.Latitude.ReadNumber()}]纬度", value.Latitude);
             value.Longitude = (int)reader.ReadUInt32();
             writer.WriteNumber($"[{value.Longitude.ReadNumber()}]经度", value.Longitude);
-            value.AlarmTime = reader.ReadDateTime6();
+            value.AlarmTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.AlarmTime.ToString("yyMMddHHmmss")}]日期时间", value.AlarmTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.VehicleState = reader.ReadUInt16();
             writer.WriteNumber($"[{value.VehicleState.ReadNumber()}]车辆状态", value.VehicleState);
@@ -204,7 +204,7 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             value.AlarmIdentification = new AlarmIdentificationProperty();
             string terminalIDHex = reader.ReadVirtualArray(7).ToArray().ToHexString();
             value.AlarmIdentification.TerminalID = reader.ReadString(7);
-            value.AlarmIdentification.Time = reader.ReadDateTime6();
+            value.AlarmIdentification.Time = reader.ReadDateTime_yyMMddHHmmss();
             value.AlarmIdentification.SN = reader.ReadByte();
             value.AlarmIdentification.AttachCount = reader.ReadByte();
             value.AlarmIdentification.Retain = reader.ReadByte();
@@ -233,12 +233,12 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             value.Altitude = reader.ReadUInt16();
             value.Latitude = (int)reader.ReadUInt32();
             value.Longitude = (int)reader.ReadUInt32();
-            value.AlarmTime = reader.ReadDateTime6();
+            value.AlarmTime = reader.ReadDateTime_yyMMddHHmmss();
             value.VehicleState = reader.ReadUInt16();
             value.AlarmIdentification = new AlarmIdentificationProperty
             {
                 TerminalID = reader.ReadString(7),
-                Time = reader.ReadDateTime6(),
+                Time = reader.ReadDateTime_yyMMddHHmmss(),
                 SN = reader.ReadByte(),
                 AttachCount = reader.ReadByte(),
                 Retain = reader.ReadByte()
@@ -263,14 +263,14 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             writer.WriteUInt16(value.Altitude);
             writer.WriteUInt32((uint)value.Latitude);
             writer.WriteUInt32((uint)value.Longitude);
-            writer.WriteDateTime6(value.AlarmTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmTime);
             writer.WriteUInt16(value.VehicleState);
             if (value.AlarmIdentification == null)
             {
                 throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空");
             }
             writer.WriteString(value.AlarmIdentification.TerminalID);
-            writer.WriteDateTime6(value.AlarmIdentification.Time);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmIdentification.Time);
             writer.WriteByte(value.AlarmIdentification.SN);
             writer.WriteByte(value.AlarmIdentification.AttachCount);
             writer.WriteByte(value.AlarmIdentification.Retain);
diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x1210.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x1210.cs
index fec8851..ac35a34 100644
--- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x1210.cs
+++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x1210.cs
@@ -65,7 +65,7 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             value.AlarmIdentification = new AlarmIdentificationProperty();
             string terminalIDHex = reader.ReadVirtualArray(7).ToArray().ToHexString();
             value.AlarmIdentification.TerminalID = reader.ReadString(7);
-            value.AlarmIdentification.Time = reader.ReadDateTime6();
+            value.AlarmIdentification.Time = reader.ReadDateTime_yyMMddHHmmss();
             value.AlarmIdentification.SN = reader.ReadByte();
             value.AlarmIdentification.AttachCount = reader.ReadByte();
             value.AlarmIdentification.Retain = reader.ReadByte();
@@ -113,7 +113,7 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             value.AlarmIdentification = new AlarmIdentificationProperty
             {
                 TerminalID = reader.ReadString(7),
-                Time = reader.ReadDateTime6(),
+                Time = reader.ReadDateTime_yyMMddHHmmss(),
                 SN = reader.ReadByte(),
                 AttachCount = reader.ReadByte(),
                 Retain = reader.ReadByte()
@@ -149,7 +149,7 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
                 throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空");
             }
             writer.WriteString(value.AlarmIdentification.TerminalID);
-            writer.WriteDateTime6(value.AlarmIdentification.Time);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmIdentification.Time);
             writer.WriteByte(value.AlarmIdentification.SN);
             writer.WriteByte(value.AlarmIdentification.AttachCount);
             writer.WriteByte(value.AlarmIdentification.Retain);
diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x9208.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x9208.cs
index 3cebe1f..0172cd5 100644
--- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x9208.cs
+++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao/MessageBody/JT808_0x9208.cs
@@ -70,7 +70,7 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             value.AlarmIdentification = new AlarmIdentificationProperty();
             string terminalIDHex = reader.ReadVirtualArray(7).ToArray().ToHexString();
             value.AlarmIdentification.TerminalID = reader.ReadString(7);
-            value.AlarmIdentification.Time = reader.ReadDateTime6();
+            value.AlarmIdentification.Time = reader.ReadDateTime_yyMMddHHmmss();
             value.AlarmIdentification.SN = reader.ReadByte();
             value.AlarmIdentification.AttachCount = reader.ReadByte();
             value.AlarmIdentification.Retain = reader.ReadByte();
@@ -101,7 +101,7 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
             value.AlarmIdentification = new AlarmIdentificationProperty
             {
                 TerminalID = reader.ReadString(7),
-                Time = reader.ReadDateTime6(),
+                Time = reader.ReadDateTime_yyMMddHHmmss(),
                 SN = reader.ReadByte(),
                 AttachCount = reader.ReadByte(),
                 Retain = reader.ReadByte()
@@ -128,7 +128,7 @@ namespace JT808.Protocol.Extensions.SuBiao.MessageBody
                 throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空");
             }
             writer.WriteString(value.AlarmIdentification.TerminalID);
-            writer.WriteDateTime6(value.AlarmIdentification.Time);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmIdentification.Time);
             writer.WriteByte(value.AlarmIdentification.SN);
             writer.WriteByte(value.AlarmIdentification.AttachCount);
             writer.WriteByte(value.AlarmIdentification.Retain);
diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x0200_0x64.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x0200_0x64.cs
index 77defdd..2507feb 100644
--- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x0200_0x64.cs
+++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x0200_0x64.cs
@@ -246,7 +246,7 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             writer.WriteNumber($"[{value.Latitude.ReadNumber()}]纬度", value.Latitude);
             value.Longitude = (int)reader.ReadUInt32();
             writer.WriteNumber($"[{value.Longitude.ReadNumber()}]经度", value.Longitude);
-            value.AlarmTime = reader.ReadDateTime6();
+            value.AlarmTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.AlarmTime.ToString("yyMMddHHmmss")}]日期时间", value.AlarmTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.VehicleState = reader.ReadUInt16();
             writer.WriteNumber($"[{value.VehicleState.ReadNumber()}]车辆状态", value.VehicleState);
@@ -272,7 +272,7 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             value.AlarmIdentification = new AlarmIdentificationProperty();
             string terminalIDHex = reader.ReadVirtualArray(30).ToArray().ToHexString();
             value.AlarmIdentification.TerminalId = reader.ReadString(30);
-            value.AlarmIdentification.Time = reader.ReadDateTime6();
+            value.AlarmIdentification.Time = reader.ReadDateTime_yyMMddHHmmss();
             value.AlarmIdentification.SN = reader.ReadByte();
             value.AlarmIdentification.AttachCount = reader.ReadByte();
             value.AlarmIdentification.Retain1 = reader.ReadByte();
@@ -308,12 +308,12 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             value.Altitude = reader.ReadUInt16();
             value.Latitude = (int)reader.ReadUInt32();
             value.Longitude = (int)reader.ReadUInt32();
-            value.AlarmTime = reader.ReadDateTime6();
+            value.AlarmTime = reader.ReadDateTime_yyMMddHHmmss();
             value.VehicleState = reader.ReadUInt16();
             value.AlarmIdentification = new AlarmIdentificationProperty
             {
                 TerminalId = reader.ReadString(30),
-                Time = reader.ReadDateTime6(),
+                Time = reader.ReadDateTime_yyMMddHHmmss(),
                 SN = reader.ReadByte(),
                 AttachCount = reader.ReadByte(),
                 Retain1 = reader.ReadByte(),
@@ -344,13 +344,13 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             writer.WriteUInt16(value.Altitude);
             writer.WriteUInt32((uint)value.Latitude);
             writer.WriteUInt32((uint)value.Longitude);
-            writer.WriteDateTime6(value.AlarmTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmTime);
             writer.WriteUInt16(value.VehicleState);
             if (value.AlarmIdentification == null) {
                 throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空");
             }
             writer.WriteString(value.AlarmIdentification.TerminalId.PadRight(30, '\0'));
-            writer.WriteDateTime6(value.AlarmIdentification.Time);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmIdentification.Time);
             writer.WriteByte(value.AlarmIdentification.SN);
             writer.WriteByte(value.AlarmIdentification.AttachCount);
             writer.WriteByte(value.AlarmIdentification.Retain1);
diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x0200_0x65.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x0200_0x65.cs
index a368377..d323e51 100644
--- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x0200_0x65.cs
+++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x0200_0x65.cs
@@ -202,7 +202,7 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             writer.WriteNumber($"[{value.Latitude.ReadNumber()}]纬度", value.Latitude);
             value.Longitude = (int)reader.ReadUInt32();
             writer.WriteNumber($"[{value.Longitude.ReadNumber()}]经度", value.Longitude);
-            value.AlarmTime = reader.ReadDateTime6();
+            value.AlarmTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.AlarmTime.ToString("yyMMddHHmmss")}]日期时间", value.AlarmTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.VehicleState = reader.ReadUInt16();
             writer.WriteNumber($"[{value.VehicleState.ReadNumber()}]车辆状态", value.VehicleState);
@@ -228,7 +228,7 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             value.AlarmIdentification = new AlarmIdentificationProperty();
             string terminalIDHex = reader.ReadVirtualArray(30).ToArray().ToHexString();
             value.AlarmIdentification.TerminalId = reader.ReadString(30);
-            value.AlarmIdentification.Time = reader.ReadDateTime6();
+            value.AlarmIdentification.Time = reader.ReadDateTime_yyMMddHHmmss();
             value.AlarmIdentification.SN = reader.ReadByte();
             value.AlarmIdentification.AttachCount = reader.ReadByte();
             value.AlarmIdentification.Retain1 = reader.ReadByte();
@@ -261,12 +261,12 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             value.Altitude = reader.ReadUInt16();
             value.Latitude = (int)reader.ReadUInt32();
             value.Longitude = (int)reader.ReadUInt32();
-            value.AlarmTime = reader.ReadDateTime6();
+            value.AlarmTime = reader.ReadDateTime_yyMMddHHmmss();
             value.VehicleState = reader.ReadUInt16();
             value.AlarmIdentification = new AlarmIdentificationProperty
             {
                 TerminalId = reader.ReadString(30),
-                Time = reader.ReadDateTime6(),
+                Time = reader.ReadDateTime_yyMMddHHmmss(),
                 SN = reader.ReadByte(),
                 AttachCount = reader.ReadByte(),
                 Retain1 = reader.ReadByte(),
@@ -298,14 +298,14 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             writer.WriteUInt16(value.Altitude);
             writer.WriteUInt32((uint)value.Latitude);
             writer.WriteUInt32((uint)value.Longitude);
-            writer.WriteDateTime6(value.AlarmTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmTime);
             writer.WriteUInt16(value.VehicleState);
             if (value.AlarmIdentification == null)
             {
                 throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空");
             }
             writer.WriteString(value.AlarmIdentification.TerminalId.PadRight(30, '\0'));
-            writer.WriteDateTime6(value.AlarmIdentification.Time);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmIdentification.Time);
             writer.WriteByte(value.AlarmIdentification.SN);
             writer.WriteByte(value.AlarmIdentification.AttachCount);
             writer.WriteByte(value.AlarmIdentification.Retain1);
diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x0200_0x66.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x0200_0x66.cs
index 1aa513e..1701125 100644
--- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x0200_0x66.cs
+++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x0200_0x66.cs
@@ -107,7 +107,7 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             writer.WriteNumber($"[{value.Latitude.ReadNumber()}]纬度", value.Latitude);
             value.Longitude = (int)reader.ReadUInt32();
             writer.WriteNumber($"[{value.Longitude.ReadNumber()}]经度", value.Longitude);
-            value.AlarmTime = reader.ReadDateTime6();
+            value.AlarmTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.AlarmTime.ToString("yyMMddHHmmss")}]日期时间", value.AlarmTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.VehicleState = reader.ReadUInt16();
             writer.WriteNumber($"[{value.VehicleState.ReadNumber()}]车辆状态", value.VehicleState);
@@ -133,7 +133,7 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             value.AlarmIdentification = new AlarmIdentificationProperty();
             string terminalIDHex = reader.ReadVirtualArray(30).ToArray().ToHexString();
             value.AlarmIdentification.TerminalId = reader.ReadString(30);
-            value.AlarmIdentification.Time = reader.ReadDateTime6();
+            value.AlarmIdentification.Time = reader.ReadDateTime_yyMMddHHmmss();
             value.AlarmIdentification.SN = reader.ReadByte();
             value.AlarmIdentification.AttachCount = reader.ReadByte();
             value.AlarmIdentification.Retain1 = reader.ReadByte();
@@ -198,12 +198,12 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             value.Altitude = reader.ReadUInt16();
             value.Latitude = (int)reader.ReadUInt32();
             value.Longitude = (int)reader.ReadUInt32();
-            value.AlarmTime = reader.ReadDateTime6();
+            value.AlarmTime = reader.ReadDateTime_yyMMddHHmmss();
             value.VehicleState = reader.ReadUInt16();
             value.AlarmIdentification = new AlarmIdentificationProperty
             {
                 TerminalId = reader.ReadString(30),
-                Time = reader.ReadDateTime6(),
+                Time = reader.ReadDateTime_yyMMddHHmmss(),
                 SN = reader.ReadByte(),
                 AttachCount = reader.ReadByte(),
                 Retain1 = reader.ReadByte(),
@@ -242,14 +242,14 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             writer.WriteUInt16(value.Altitude);
             writer.WriteUInt32((uint)value.Latitude);
             writer.WriteUInt32((uint)value.Longitude);
-            writer.WriteDateTime6(value.AlarmTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmTime);
             writer.WriteUInt16(value.VehicleState);
             if (value.AlarmIdentification == null)
             {
                 throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空");
             }
             writer.WriteString(value.AlarmIdentification.TerminalId.PadRight(30, '\0'));
-            writer.WriteDateTime6(value.AlarmIdentification.Time);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmIdentification.Time);
             writer.WriteByte(value.AlarmIdentification.SN);
             writer.WriteByte(value.AlarmIdentification.AttachCount);
             writer.WriteByte(value.AlarmIdentification.Retain1);
diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x0200_0x67.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x0200_0x67.cs
index a727a21..25e990e 100644
--- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x0200_0x67.cs
+++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x0200_0x67.cs
@@ -118,7 +118,7 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             writer.WriteNumber($"[{value.Latitude.ReadNumber()}]纬度", value.Latitude);
             value.Longitude = (int)reader.ReadUInt32();
             writer.WriteNumber($"[{value.Longitude.ReadNumber()}]经度", value.Longitude);
-            value.AlarmTime = reader.ReadDateTime6();
+            value.AlarmTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.AlarmTime.ToString("yyMMddHHmmss")}]日期时间", value.AlarmTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.VehicleState = reader.ReadUInt16();
             writer.WriteNumber($"[{value.VehicleState.ReadNumber()}]车辆状态", value.VehicleState);
@@ -144,7 +144,7 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             value.AlarmIdentification = new AlarmIdentificationProperty();
             string terminalIDHex = reader.ReadVirtualArray(30).ToArray().ToHexString();
             value.AlarmIdentification.TerminalId = reader.ReadString(30);
-            value.AlarmIdentification.Time = reader.ReadDateTime6();
+            value.AlarmIdentification.Time = reader.ReadDateTime_yyMMddHHmmss();
             value.AlarmIdentification.SN = reader.ReadByte();
             value.AlarmIdentification.AttachCount = reader.ReadByte();
             value.AlarmIdentification.Retain1 = reader.ReadByte();
@@ -174,12 +174,12 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             value.Altitude = reader.ReadUInt16();
             value.Latitude = (int)reader.ReadUInt32();
             value.Longitude = (int)reader.ReadUInt32();
-            value.AlarmTime = reader.ReadDateTime6();
+            value.AlarmTime = reader.ReadDateTime_yyMMddHHmmss();
             value.VehicleState = reader.ReadUInt16();
             value.AlarmIdentification = new AlarmIdentificationProperty
             {
                 TerminalId = reader.ReadString(30),
-                Time = reader.ReadDateTime6(),
+                Time = reader.ReadDateTime_yyMMddHHmmss(),
                 SN = reader.ReadByte(),
                 AttachCount = reader.ReadByte(),
                 Retain1 = reader.ReadByte(),
@@ -204,14 +204,14 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             writer.WriteUInt16(value.Altitude);
             writer.WriteUInt32((uint)value.Latitude);
             writer.WriteUInt32((uint)value.Longitude);
-            writer.WriteDateTime6(value.AlarmTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmTime);
             writer.WriteUInt16(value.VehicleState);
             if (value.AlarmIdentification == null)
             {
                 throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空");
             }
             writer.WriteString(value.AlarmIdentification.TerminalId.PadRight(30, '\0'));
-            writer.WriteDateTime6(value.AlarmIdentification.Time);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmIdentification.Time);
             writer.WriteByte(value.AlarmIdentification.SN);
             writer.WriteByte(value.AlarmIdentification.AttachCount);
             writer.WriteByte(value.AlarmIdentification.Retain1);
diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x1210.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x1210.cs
index d766050..f2ee772 100644
--- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x1210.cs
+++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x1210.cs
@@ -65,7 +65,7 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             value.AlarmIdentification = new AlarmIdentificationProperty();
             string terminalIdHex = reader.ReadVirtualArray(30).ToArray().ToHexString();
             value.AlarmIdentification.TerminalId = reader.ReadString(30);
-            value.AlarmIdentification.Time = reader.ReadDateTime6();
+            value.AlarmIdentification.Time = reader.ReadDateTime_yyMMddHHmmss();
             value.AlarmIdentification.SN = reader.ReadByte();
             value.AlarmIdentification.AttachCount = reader.ReadByte();
             value.AlarmIdentification.Retain1 = reader.ReadByte();
@@ -115,7 +115,7 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             value.AlarmIdentification = new AlarmIdentificationProperty
             {
                 TerminalId = reader.ReadString(30),
-                Time = reader.ReadDateTime6(),
+                Time = reader.ReadDateTime_yyMMddHHmmss(),
                 SN = reader.ReadByte(),
                 AttachCount = reader.ReadByte(),
                 Retain1 = reader.ReadByte(),
@@ -152,7 +152,7 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
                 throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空");
             }
             writer.WriteString(value.AlarmIdentification.TerminalId.PadRight(30, '\0'));
-            writer.WriteDateTime6(value.AlarmIdentification.Time);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmIdentification.Time);
             writer.WriteByte(value.AlarmIdentification.SN);
             writer.WriteByte(value.AlarmIdentification.AttachCount);
             writer.WriteByte(value.AlarmIdentification.Retain1);
diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x9208.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x9208.cs
index 60ac76a..597d35b 100644
--- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x9208.cs
+++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x9208.cs
@@ -70,7 +70,7 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             value.AlarmIdentification = new AlarmIdentificationProperty();
             string terminalIdHex = reader.ReadVirtualArray(30).ToArray().ToHexString();
             value.AlarmIdentification.TerminalId = reader.ReadString(30);
-            value.AlarmIdentification.Time = reader.ReadDateTime6();
+            value.AlarmIdentification.Time = reader.ReadDateTime_yyMMddHHmmss();
             value.AlarmIdentification.SN = reader.ReadByte();
             value.AlarmIdentification.AttachCount = reader.ReadByte();
             value.AlarmIdentification.Retain1 = reader.ReadByte();
@@ -103,7 +103,7 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
             value.AlarmIdentification = new AlarmIdentificationProperty
             {
                 TerminalId = reader.ReadString(30),
-                Time = reader.ReadDateTime6(),
+                Time = reader.ReadDateTime_yyMMddHHmmss(),
                 SN = reader.ReadByte(),
                 AttachCount = reader.ReadByte(),
                 Retain1 = reader.ReadByte(),
@@ -131,7 +131,7 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody
                 throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空");
             }
             writer.WriteString(value.AlarmIdentification.TerminalId.PadRight(30, '\0'));
-            writer.WriteDateTime6(value.AlarmIdentification.Time);
+            writer.WriteDateTime_yyMMddHHmmss(value.AlarmIdentification.Time);
             writer.WriteByte(value.AlarmIdentification.SN);
             writer.WriteByte(value.AlarmIdentification.AttachCount);
             writer.WriteByte(value.AlarmIdentification.Retain1);
diff --git a/src/JT808.Protocol.Test/MessagePack/JT808MessagePackReaderTest.cs b/src/JT808.Protocol.Test/MessagePack/JT808MessagePackReaderTest.cs
index 84cc5b9..1d5d794 100644
--- a/src/JT808.Protocol.Test/MessagePack/JT808MessagePackReaderTest.cs
+++ b/src/JT808.Protocol.Test/MessagePack/JT808MessagePackReaderTest.cs
@@ -67,9 +67,9 @@ namespace JT808.Protocol.Test.MessagePack
             byte[] bytes = "7E2019061923232301231906192323237E".ToHexBytes();
             JT808MessagePackReader jT808MessagePackReader = new JT808MessagePackReader(bytes);
             Assert.Equal(JT808Package.BeginFlag, jT808MessagePackReader.ReadStart());
-            Assert.Equal(DateTime.Parse("2019-06-19"), jT808MessagePackReader.ReadDateTime4());
-            Assert.Equal(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day,23,23,23,123), jT808MessagePackReader.ReadDateTime5());
-            Assert.Equal(DateTime.Parse("2019-06-19 23:23:23"), jT808MessagePackReader.ReadDateTime6());
+            Assert.Equal(DateTime.Parse("2019-06-19"), jT808MessagePackReader.ReadDateTime_YYYYMMDD());
+            Assert.Equal(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day,23,23,23,123), jT808MessagePackReader.ReadDateTime_HHmmssfff());
+            Assert.Equal(DateTime.Parse("2019-06-19 23:23:23"), jT808MessagePackReader.ReadDateTime_yyMMddHHmmss());
             Assert.Equal(JT808Package.EndFlag, jT808MessagePackReader.ReadEnd());
         }
 
@@ -79,9 +79,9 @@ namespace JT808.Protocol.Test.MessagePack
             byte[] bytes = "7E0000000000000000000000000000007E".ToHexBytes();
             JT808MessagePackReader jT808MessagePackReader = new JT808MessagePackReader(bytes);
             Assert.Equal(JT808Package.BeginFlag, jT808MessagePackReader.ReadStart());
-            Assert.Null(jT808MessagePackReader.ReadDateTimeNull4());
-            Assert.Null(jT808MessagePackReader.ReadDateTimeNull5());
-            Assert.Null(jT808MessagePackReader.ReadDateTimeNull6());
+            Assert.Null(jT808MessagePackReader.ReadDateTimeNull_YYYYMMDD());
+            Assert.Null(jT808MessagePackReader.ReadDateTimeNull_HHmmssfff());
+            Assert.Null(jT808MessagePackReader.ReadDateTimeNull_yyMMddHHmmss());
             Assert.Equal(JT808Package.EndFlag, jT808MessagePackReader.ReadEnd());
         }
 
diff --git a/src/JT808.Protocol.Test/MessagePack/JT808MessagePackWriterTest.cs b/src/JT808.Protocol.Test/MessagePack/JT808MessagePackWriterTest.cs
index a55047c..33430e4 100644
--- a/src/JT808.Protocol.Test/MessagePack/JT808MessagePackWriterTest.cs
+++ b/src/JT808.Protocol.Test/MessagePack/JT808MessagePackWriterTest.cs
@@ -58,9 +58,9 @@ namespace JT808.Protocol.Test.MessagePack
             byte[] array = new byte[4096];
             var msgpackWriter = new JT808MessagePackWriter(array);
             msgpackWriter.WriteStart();
-            msgpackWriter.WriteDateTime4(DateTime.Parse("2019-06-19 23:23:23"));
-            msgpackWriter.WriteDateTime5(DateTime.Parse("2019-06-19 23:23:23.123"));
-            msgpackWriter.WriteDateTime6(DateTime.Parse("2019-06-19 23:23:23"));
+            msgpackWriter.WriteDateTime_YYYYMMDD(DateTime.Parse("2019-06-19 23:23:23"));
+            msgpackWriter.WriteDateTime_HHmmssfff(DateTime.Parse("2019-06-19 23:23:23.123"));
+            msgpackWriter.WriteDateTime_yyMMddHHmmss(DateTime.Parse("2019-06-19 23:23:23"));
             msgpackWriter.WriteEnd();
             msgpackWriter.WriteEncode();
             //===========output=========
@@ -83,9 +83,9 @@ namespace JT808.Protocol.Test.MessagePack
             byte[] array = new byte[4096];
             var msgpackWriter = new JT808MessagePackWriter(array);
             msgpackWriter.WriteStart();
-            msgpackWriter.WriteDateTime4(null);
-            msgpackWriter.WriteDateTime5(null);
-            msgpackWriter.WriteDateTime6(null);
+            msgpackWriter.WriteDateTime_YYYYMMDD(null);
+            msgpackWriter.WriteDateTime_HHmmssfff(null);
+            msgpackWriter.WriteDateTime_yyMMddHHmmss(null);
             msgpackWriter.WriteEnd();
             msgpackWriter.WriteEncode();
             //===========output=========
diff --git a/src/JT808.Protocol/JT808.Protocol.xml b/src/JT808.Protocol/JT808.Protocol.xml
index 7077e5f..c9752d5 100644
--- a/src/JT808.Protocol/JT808.Protocol.xml
+++ b/src/JT808.Protocol/JT808.Protocol.xml
@@ -10853,6 +10853,11 @@
             通道 ID
             </summary>
         </member>
+        <member name="P:JT808.Protocol.MessageBody.JT808_0x0801.PositionError">
+            <summary>
+            定位错误
+            </summary>
+        </member>
         <member name="P:JT808.Protocol.MessageBody.JT808_0x0801.Position">
             <summary>
             位置信息汇报(0x0200)消息体
@@ -18746,13 +18751,13 @@
         </member>
         <member name="M:JT808.Protocol.MessagePack.JT808MessagePackWriter.WriteDateTime_YYMMDD(System.DateTime@)">
             <summary>
-            写入三个字节的日期类型,YYMMDD 数据形如:20200101
+            写入三个字节的日期类型,YYMMDD 数据形如:200101
             </summary>
             <param name="value"></param>
         </member>
         <member name="M:JT808.Protocol.MessagePack.JT808MessagePackWriter.WriteDateTime3(System.Nullable{System.DateTime}@,System.Int32@)">
             <summary>
-            写入三个字节的可空日期类型,YYMMDD 数据形如:20200101
+            写入三个字节的可空日期类型,YYMMDD 数据形如:200101
             </summary>
             <param name="value"></param>
             <param name="fromBase"></param>
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x08.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x08.cs
index 14b1fcb..e48b05f 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x08.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x08.cs
@@ -45,8 +45,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Down_0x08 value, IJT808Config config)
         {
-            writer.WriteDateTime6(value.StartTime);
-            writer.WriteDateTime6(value.EndTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.StartTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.EndTime);
             writer.WriteUInt16(value.Count);
         }
         /// <summary>
@@ -58,8 +58,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public JT808_CarDVR_Down_0x08  Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             JT808_CarDVR_Down_0x08 value = new JT808_CarDVR_Down_0x08();
-            value.StartTime = reader.ReadDateTime6();
-            value.EndTime = reader.ReadDateTime6();
+            value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             value.Count = reader.ReadUInt16();
             return value;
         }
@@ -72,9 +72,9 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
         {
             JT808_CarDVR_Down_0x08 value = new JT808_CarDVR_Down_0x08();
-            value.StartTime = reader.ReadDateTime6();
+            value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.StartTime:yyMMddHHmmss}]开始时间", value.StartTime.ToString("yyyy-MM-dd HH:mm:ss"));
-            value.EndTime = reader.ReadDateTime6();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.EndTime:yyMMddHHmmss}]结束时间", value.EndTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.Count = reader.ReadUInt16();
             writer.WriteNumber($"[{value.Count.ReadNumber()}]最大单位数据块个数", value.Count);
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x09.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x09.cs
index 2e5b614..384687d 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x09.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x09.cs
@@ -45,8 +45,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Down_0x09 value, IJT808Config config)
         {
-            writer.WriteDateTime6(value.StartTime);
-            writer.WriteDateTime6(value.EndTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.StartTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.EndTime);
             writer.WriteUInt16(value.Count);
         }
         /// <summary>
@@ -58,8 +58,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public JT808_CarDVR_Down_0x09 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             JT808_CarDVR_Down_0x09 value = new JT808_CarDVR_Down_0x09();
-            value.StartTime = reader.ReadDateTime6();
-            value.EndTime = reader.ReadDateTime6();
+            value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             value.Count = reader.ReadUInt16();
             return value;
         }
@@ -72,9 +72,9 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
         {
             JT808_CarDVR_Down_0x09 value = new JT808_CarDVR_Down_0x09();
-            value.StartTime = reader.ReadDateTime6();
+            value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.StartTime:yyMMddHHmmss}]开始时间", value.StartTime.ToString("yyyy-MM-dd HH:mm:ss"));
-            value.EndTime = reader.ReadDateTime6();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.EndTime:yyMMddHHmmss}]结束时间", value.EndTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.Count = reader.ReadUInt16();
             writer.WriteNumber($"[{value.Count.ReadNumber()}]最大单位数据块个数", value.Count);
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x10.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x10.cs
index 8a8022c..0bd4581 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x10.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x10.cs
@@ -45,8 +45,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Down_0x10 value, IJT808Config config)
         {
-            writer.WriteDateTime6(value.StartTime);
-            writer.WriteDateTime6(value.EndTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.StartTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.EndTime);
             writer.WriteUInt16(value.Count);
         }
         /// <summary>
@@ -58,8 +58,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public JT808_CarDVR_Down_0x10 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             JT808_CarDVR_Down_0x10 value = new JT808_CarDVR_Down_0x10();
-            value.StartTime = reader.ReadDateTime6();
-            value.EndTime = reader.ReadDateTime6();
+            value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             value.Count = reader.ReadUInt16();
             return value;
         }
@@ -72,9 +72,9 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
         {
             JT808_CarDVR_Down_0x10 value = new JT808_CarDVR_Down_0x10();
-            value.StartTime = reader.ReadDateTime6();
+            value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.StartTime:yyMMddHHmmss}]开始时间", value.StartTime.ToString("yyyy-MM-dd HH:mm:ss"));
-            value.EndTime = reader.ReadDateTime6();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.EndTime:yyMMddHHmmss}]结束时间", value.EndTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.Count = reader.ReadUInt16();
             writer.WriteNumber($"[{value.Count.ReadNumber()}]最大单位数据块个数", value.Count);
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x11.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x11.cs
index 57af7e1..ff297fc 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x11.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x11.cs
@@ -44,8 +44,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Down_0x11 value, IJT808Config config)
         {
-            writer.WriteDateTime6(value.StartTime);
-            writer.WriteDateTime6(value.EndTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.StartTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.EndTime);
             writer.WriteUInt16(value.Count);
         }
         /// <summary>
@@ -57,8 +57,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public JT808_CarDVR_Down_0x11 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             JT808_CarDVR_Down_0x11 value = new JT808_CarDVR_Down_0x11();
-            value.StartTime = reader.ReadDateTime6();
-            value.EndTime = reader.ReadDateTime6();
+            value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             value.Count = reader.ReadUInt16();
             return value;
         }
@@ -71,9 +71,9 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
         {
             JT808_CarDVR_Down_0x11 value = new JT808_CarDVR_Down_0x11();
-            value.StartTime = reader.ReadDateTime6();
+            value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.StartTime:yyMMddHHmmss}]开始时间", value.StartTime.ToString("yyyy-MM-dd HH:mm:ss"));
-            value.EndTime = reader.ReadDateTime6();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.EndTime:yyMMddHHmmss}]结束时间", value.EndTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.Count = reader.ReadUInt16();
             writer.WriteNumber($"[{value.Count.ReadNumber()}]最大单位数据块个数", value.Count);
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x12.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x12.cs
index 62fe324..b2d61d5 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x12.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x12.cs
@@ -44,8 +44,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Down_0x12 value, IJT808Config config)
         {
-            writer.WriteDateTime6(value.StartTime);
-            writer.WriteDateTime6(value.EndTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.StartTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.EndTime);
             writer.WriteUInt16(value.Count);
         }
         /// <summary>
@@ -57,8 +57,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public JT808_CarDVR_Down_0x12 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             JT808_CarDVR_Down_0x12 value = new JT808_CarDVR_Down_0x12();
-            value.StartTime = reader.ReadDateTime6();
-            value.EndTime = reader.ReadDateTime6();
+            value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             value.Count = reader.ReadUInt16();
             return value;
         }
@@ -71,9 +71,9 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
         {
             JT808_CarDVR_Down_0x12 value = new JT808_CarDVR_Down_0x12();
-            value.StartTime = reader.ReadDateTime6();
+            value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.StartTime:yyMMddHHmmss}]开始时间", value.StartTime.ToString("yyyy-MM-dd HH:mm:ss"));
-            value.EndTime = reader.ReadDateTime6();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.EndTime:yyMMddHHmmss}]结束时间", value.EndTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.Count = reader.ReadUInt16();
             writer.WriteNumber($"[{value.Count.ReadNumber()}]最大单位数据块个数", value.Count);
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x13.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x13.cs
index 35646c8..50a200b 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x13.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x13.cs
@@ -44,8 +44,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Down_0x13 value, IJT808Config config)
         {
-            writer.WriteDateTime6(value.StartTime);
-            writer.WriteDateTime6(value.EndTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.StartTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.EndTime);
             writer.WriteUInt16(value.Count);
         }
         /// <summary>
@@ -57,8 +57,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public JT808_CarDVR_Down_0x13 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             JT808_CarDVR_Down_0x13 value = new JT808_CarDVR_Down_0x13();
-            value.StartTime = reader.ReadDateTime6();
-            value.EndTime = reader.ReadDateTime6();
+            value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             value.Count = reader.ReadUInt16();
             return value;
         }
@@ -71,9 +71,9 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
         {
             JT808_CarDVR_Down_0x13 value = new JT808_CarDVR_Down_0x13();
-            value.StartTime = reader.ReadDateTime6();
+            value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.StartTime:yyMMddHHmmss}]开始时间", value.StartTime.ToString("yyyy-MM-dd HH:mm:ss"));
-            value.EndTime = reader.ReadDateTime6();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.EndTime:yyMMddHHmmss}]结束时间", value.EndTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.Count = reader.ReadUInt16();
             writer.WriteNumber($"[{value.Count.ReadNumber()}]最大单位数据块个数", value.Count);
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x14.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x14.cs
index 4f82eab..b16c671 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x14.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x14.cs
@@ -44,8 +44,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Down_0x14 value, IJT808Config config)
         {
-            writer.WriteDateTime6(value.StartTime);
-            writer.WriteDateTime6(value.EndTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.StartTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.EndTime);
             writer.WriteUInt16(value.Count);
         }
         /// <summary>
@@ -57,8 +57,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public JT808_CarDVR_Down_0x14 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             JT808_CarDVR_Down_0x14 value = new JT808_CarDVR_Down_0x14();
-            value.StartTime = reader.ReadDateTime6();
-            value.EndTime = reader.ReadDateTime6();
+            value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             value.Count = reader.ReadUInt16();
             return value;
         }
@@ -71,9 +71,9 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
         {
             JT808_CarDVR_Down_0x14 value = new JT808_CarDVR_Down_0x14();
-            value.StartTime = reader.ReadDateTime6();
+            value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.StartTime:yyMMddHHmmss}]开始时间", value.StartTime.ToString("yyyy-MM-dd HH:mm:ss"));
-            value.EndTime = reader.ReadDateTime6();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.EndTime:yyMMddHHmmss}]结束时间", value.EndTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.Count = reader.ReadUInt16();
             writer.WriteNumber($"[{value.Count.ReadNumber()}]最大单位数据块个数", value.Count);
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x15.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x15.cs
index d0ab8d9..f9b7d86 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x15.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x15.cs
@@ -44,8 +44,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Down_0x15 value, IJT808Config config)
         {
-            writer.WriteDateTime6(value.StartTime);
-            writer.WriteDateTime6(value.EndTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.StartTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.EndTime);
             writer.WriteUInt16(value.Count);
         }
         /// <summary>
@@ -57,8 +57,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public JT808_CarDVR_Down_0x15 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             JT808_CarDVR_Down_0x15 value = new JT808_CarDVR_Down_0x15();
-            value.StartTime = reader.ReadDateTime6();
-            value.EndTime = reader.ReadDateTime6();
+            value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             value.Count = reader.ReadUInt16();
             return value;
         }
@@ -71,9 +71,9 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
         {
             JT808_CarDVR_Down_0x15 value = new JT808_CarDVR_Down_0x15();
-            value.StartTime = reader.ReadDateTime6();
+            value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.StartTime:yyMMddHHmmss}]开始时间", value.StartTime.ToString("yyyy-MM-dd HH:mm:ss"));
-            value.EndTime = reader.ReadDateTime6();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.EndTime:yyMMddHHmmss}]结束时间", value.EndTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.Count = reader.ReadUInt16();
             writer.WriteNumber($"[{value.Count.ReadNumber()}]最大单位数据块个数", value.Count);
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x83.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x83.cs
index 9147110..642948c 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x83.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x83.cs
@@ -38,7 +38,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
         {
             JT808_CarDVR_Down_0x83 value = new JT808_CarDVR_Down_0x83();
-            value.RealTime = reader.ReadDateTime6();
+            value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.RealTime:yyMMddHHmmss}]初次安装日期", value.RealTime.ToString("yyyy-MM-dd HH:mm:ss"));
         }
         /// <summary>
@@ -49,7 +49,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Down_0x83 value, IJT808Config config)
         {
-            writer.WriteDateTime6(value.RealTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.RealTime);
         }
         /// <summary>
         /// 
@@ -60,7 +60,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public JT808_CarDVR_Down_0x83 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             JT808_CarDVR_Down_0x83 value = new JT808_CarDVR_Down_0x83();
-            value.RealTime = reader.ReadDateTime6();
+            value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
             return value;
         }
     }
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x84.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x84.cs
index 8669823..0e39e2d 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x84.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0x84.cs
@@ -80,7 +80,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
         {
             JT808_CarDVR_Down_0x84 value = new JT808_CarDVR_Down_0x84();
-            value.RealTime = reader.ReadDateTime6();
+            value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.RealTime:yyMMddHHmmss}]实时时间", value.RealTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.SignalOperate = reader.ReadByte();
             writer.WriteNumber($"[{value.SignalOperate.ReadNumber()}]信号个数", value.SignalOperate);
@@ -117,7 +117,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Down_0x84 value, IJT808Config config)
         {
-            writer.WriteDateTime6(value.RealTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.RealTime);
             writer.WriteByte(value.SignalOperate);
             var currentPosition = writer.GetCurrentPosition();
             writer.WriteString(value.D0);
@@ -153,7 +153,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public JT808_CarDVR_Down_0x84 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             JT808_CarDVR_Down_0x84 value = new JT808_CarDVR_Down_0x84();
-            value.RealTime = reader.ReadDateTime6();
+            value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
             value.SignalOperate = reader.ReadByte();
             value.D0 = reader.ReadString(10);
             value.D1 = reader.ReadString(10);
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0xC2.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0xC2.cs
index c27c412..48ccacb 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0xC2.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0xC2.cs
@@ -38,7 +38,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
         {
             JT808_CarDVR_Down_0xC2 value = new JT808_CarDVR_Down_0xC2();
-            value.RealTime = reader.ReadDateTime6();
+            value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.RealTime:yyMMddHHmmss}]实时时间", value.RealTime.ToString("yyyy-MM-dd HH:mm:ss"));
         }
 
@@ -50,7 +50,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Down_0xC2 value, IJT808Config config)
         {
-            writer.WriteDateTime6(value.RealTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.RealTime);
         }
         /// <summary>
         /// 
@@ -61,7 +61,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public JT808_CarDVR_Down_0xC2 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             JT808_CarDVR_Down_0xC2 value = new JT808_CarDVR_Down_0xC2();
-            value.RealTime = reader.ReadDateTime6();
+            value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
             return value;
         }
     }
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0xC3.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0xC3.cs
index 395751e..6a37726 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0xC3.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0xC3.cs
@@ -43,7 +43,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
         {
             JT808_CarDVR_Down_0xC3 value = new JT808_CarDVR_Down_0xC3();
-            value.RealTime = reader.ReadDateTime6();
+            value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.RealTime:yyMMddHHmmss}]当前时间", value.RealTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.PulseCoefficient = reader.ReadUInt16();
             writer.WriteNumber($"[{value.PulseCoefficient.ReadNumber()}]脉冲系数", value.PulseCoefficient);
@@ -58,7 +58,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Down_0xC3 value, IJT808Config config)
         {
-            writer.WriteDateTime6(value.RealTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.RealTime);
             writer.WriteUInt16(value.PulseCoefficient);
         }
         /// <summary>
@@ -70,7 +70,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public JT808_CarDVR_Down_0xC3 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             JT808_CarDVR_Down_0xC3 value = new JT808_CarDVR_Down_0xC3();
-            value.RealTime = reader.ReadDateTime6();
+            value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
             value.PulseCoefficient = reader.ReadUInt16();
             return value;
         }
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0xC4.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0xC4.cs
index afe9655..e00ec72 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0xC4.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Down_0xC4.cs
@@ -50,9 +50,9 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
         {
             JT808_CarDVR_Down_0xC4 value = new JT808_CarDVR_Down_0xC4();
-            value.RealTime = reader.ReadDateTime6();
+            value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.RealTime:yyMMddHHmmss}]当前时间", value.RealTime.ToString("yyyy-MM-dd HH:mm:ss"));
-            value.FirstInstallTime = reader.ReadDateTime6();
+            value.FirstInstallTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.FirstInstallTime:yyMMddHHmmss}]初次安装时间", value.FirstInstallTime.ToString("yyyy-MM-dd HH:mm:ss"));
             value.FirstMileage = reader.ReadBCD(8);
             writer.WriteString($"[{value.FirstMileage}]初始里程", value.FirstMileage);
@@ -67,8 +67,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Down_0xC4 value, IJT808Config config)
         {
-            writer.WriteDateTime6(value.RealTime);
-            writer.WriteDateTime6(value.FirstInstallTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.RealTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.FirstInstallTime);
             writer.WriteBCD(value.FirstMileage, 8);
             writer.WriteBCD(value.TotalMilage, 8);
         }
@@ -81,8 +81,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public JT808_CarDVR_Down_0xC4 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             JT808_CarDVR_Down_0xC4 value = new JT808_CarDVR_Down_0xC4();
-            value.RealTime = reader.ReadDateTime6();
-            value.FirstInstallTime = reader.ReadDateTime6();
+            value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
+            value.FirstInstallTime = reader.ReadDateTime_yyMMddHHmmss();
             value.FirstMileage = reader.ReadBCD(8);
             value.TotalMilage = reader.ReadBCD(8);
             return value;
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x02.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x02.cs
index 75512fc..f12b8f4 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x02.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x02.cs
@@ -39,7 +39,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         {
             JT808_CarDVR_Up_0x02 value = new JT808_CarDVR_Up_0x02();
             var hex = reader.ReadVirtualArray(6);
-            value.RealTime = reader.ReadDateTime6();
+            value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{hex.ToArray().ToHexString()}]实时时间", value.RealTime);
         }
         /// <summary>
@@ -50,7 +50,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Up_0x02 value, IJT808Config config)
         {
-            writer.WriteDateTime6(value.RealTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.RealTime);
         }
         /// <summary>
         /// 
@@ -61,7 +61,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public JT808_CarDVR_Up_0x02 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             JT808_CarDVR_Up_0x02 value = new JT808_CarDVR_Up_0x02();
-            value.RealTime = reader.ReadDateTime6();
+            value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
             return value;
         }
     }
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x03.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x03.cs
index 6fc627d..3288028 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x03.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x03.cs
@@ -48,10 +48,10 @@ namespace JT808.Protocol.MessageBody.CarDVR
         {
             JT808_CarDVR_Up_0x03 value = new JT808_CarDVR_Up_0x03();
             var hex = reader.ReadVirtualArray(6);
-            value.RealTime = reader.ReadDateTime6();
+            value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{hex.ToArray().ToHexString()}]实时时间", value.RealTime);
             hex = reader.ReadVirtualArray(6);
-            value.FirstInstallTime = reader.ReadDateTime6();
+            value.FirstInstallTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{hex.ToArray().ToHexString()}]初次安装时间", value.RealTime);
             hex = reader.ReadVirtualArray(4);
             value.FirstMileage = reader.ReadBCD(8);
@@ -68,8 +68,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Up_0x03 value, IJT808Config config)
         {
-            writer.WriteDateTime6(value.RealTime);
-            writer.WriteDateTime6(value.FirstInstallTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.RealTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.FirstInstallTime);
             writer.WriteBCD(value.FirstMileage, 8);
             writer.WriteBCD(value.TotalMilage, 8);
         }
@@ -82,8 +82,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public JT808_CarDVR_Up_0x03 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             JT808_CarDVR_Up_0x03 value = new JT808_CarDVR_Up_0x03();
-            value.RealTime = reader.ReadDateTime6();
-            value.FirstInstallTime = reader.ReadDateTime6();
+            value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
+            value.FirstInstallTime = reader.ReadDateTime_yyMMddHHmmss();
             value.FirstMileage = reader.ReadBCD(8);
             value.TotalMilage = reader.ReadBCD(8);
             return value;
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x04.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x04.cs
index 5c638d7..c212bd1 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x04.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x04.cs
@@ -43,7 +43,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         {
             JT808_CarDVR_Up_0x04 value = new JT808_CarDVR_Up_0x04();
             var hex = reader.ReadVirtualArray(6);
-            value.RealTime = reader.ReadDateTime6();
+            value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{hex.ToArray().ToHexString()}]当前时间", value.RealTime);
             value.PulseCoefficient = reader.ReadUInt16();
             writer.WriteNumber($"[{value.PulseCoefficient.ReadNumber()}]脉冲系数",value.PulseCoefficient);
@@ -56,7 +56,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Up_0x04 value, IJT808Config config)
         {
-            writer.WriteDateTime6(value.RealTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.RealTime);
             writer.WriteUInt16(value.PulseCoefficient);
         }
         /// <summary>
@@ -68,7 +68,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public JT808_CarDVR_Up_0x04 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             JT808_CarDVR_Up_0x04 value = new JT808_CarDVR_Up_0x04();
-            value.RealTime = reader.ReadDateTime6();
+            value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
             value.PulseCoefficient = reader.ReadUInt16();
             return value;
         }
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x06.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x06.cs
index 86072a6..5385d15 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x06.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x06.cs
@@ -81,7 +81,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         {
             JT808_CarDVR_Up_0x06 value = new JT808_CarDVR_Up_0x06();
             var hex = reader.ReadVirtualArray(6);
-            value.RealTime = reader.ReadDateTime6();
+            value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{hex.ToArray().ToHexString()}]实时时间", value.RealTime);
             value.SignalOperate = reader.ReadByte();
             writer.WriteNumber($"[{value.SignalOperate.ReadNumber()}]信号个数", value.SignalOperate) ;
@@ -118,7 +118,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Up_0x06 value, IJT808Config config)
         {
-            writer.WriteDateTime6(value.RealTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.RealTime);
             writer.WriteByte(value.SignalOperate);
             var currentPosition = writer.GetCurrentPosition();
             writer.WriteString(value.D0);
@@ -154,7 +154,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         public JT808_CarDVR_Up_0x06 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             JT808_CarDVR_Up_0x06 value = new JT808_CarDVR_Up_0x06();
-            value.RealTime = reader.ReadDateTime6();
+            value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
             value.SignalOperate = reader.ReadByte();
             value.D0 = reader.ReadString(10);
             value.D1 = reader.ReadString(10);
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x07.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x07.cs
index 17ca541..4c0ae05 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x07.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x07.cs
@@ -61,7 +61,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
             value.CertifiedProductModels = reader.ReadASCII(16);
             writer.WriteString($"[{hex.ToArray().ToHexString()}]认证产品型号", value.CertifiedProductModels);
             hex = reader.ReadVirtualArray(3);
-            value.ProductionDate = reader.ReadDateTime3();
+            value.ProductionDate = reader.ReadDateTime_YYMMDD();
             writer.WriteString($"[{hex.ToArray().ToHexString()}]生产日期", value.ProductionDate);
             hex = reader.ReadVirtualArray(4);
             value.ProductProductionFlowNumber = reader.ReadString(4);
@@ -84,7 +84,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
             currentPosition = writer.GetCurrentPosition();
             writer.WriteASCII(value.CertifiedProductModels);
             writer.Skip(16 - (writer.GetCurrentPosition()- currentPosition), out var _);
-            writer.WriteDateTime3(value.ProductionDate);
+            writer.WriteDateTime_YYMMDD(value.ProductionDate);
             currentPosition = writer.GetCurrentPosition();
             writer.WriteString(value.ProductProductionFlowNumber);
             writer.Skip(4 - (writer.GetCurrentPosition() - currentPosition), out var _);
@@ -103,7 +103,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
             JT808_CarDVR_Up_0x07 value = new JT808_CarDVR_Up_0x07();
             value.ProductionPlantCCCCertificationCode = reader.ReadASCII(7);
             value.CertifiedProductModels = reader.ReadASCII(16);
-            value.ProductionDate = reader.ReadDateTime3();
+            value.ProductionDate = reader.ReadDateTime_YYMMDD();
             value.ProductProductionFlowNumber = reader.ReadString(4);
             value.Reversed = reader.ReadString(5);
             return value;
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x08.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x08.cs
index 12ed814..100a9c5 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x08.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x08.cs
@@ -46,7 +46,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
                 writer.WriteStartObject();
                 writer.WriteStartObject($"第{i+1}分钟行驶速度记录数据块格式");
                 var hex = reader.ReadVirtualArray(6);
-                jT808_CarDVR_Up_0X08_SpeedPerMinute.StartTime = reader.ReadDateTime6();
+                jT808_CarDVR_Up_0X08_SpeedPerMinute.StartTime = reader.ReadDateTime_yyMMddHHmmss();
                 writer.WriteString($"[{hex.ToArray().ToHexString()}]开始时间", jT808_CarDVR_Up_0X08_SpeedPerMinute.StartTime);
                 for (int j = 0; j < 60; j++)//60秒
                 {
@@ -74,7 +74,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         {
             foreach (var speedPerMinute in value.JT808_CarDVR_Up_0x08_SpeedPerMinutes)
             {
-                writer.WriteDateTime6(speedPerMinute.StartTime);
+                writer.WriteDateTime_yyMMddHHmmss(speedPerMinute.StartTime);
                 for (int i = 0; i < 60; i++)
                 {
                     if (i < speedPerMinute.JT808_CarDVR_Up_0x08_SpeedPerSeconds.Count)
@@ -104,7 +104,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
             {
                 JT808_CarDVR_Up_0x08_SpeedPerMinute jT808_CarDVR_Up_0X08_SpeedPerMinute = new JT808_CarDVR_Up_0x08_SpeedPerMinute()
                 {
-                    StartTime = reader.ReadDateTime6(),
+                    StartTime = reader.ReadDateTime_yyMMddHHmmss(),
                     JT808_CarDVR_Up_0x08_SpeedPerSeconds = new List<JT808_CarDVR_Up_0x08_SpeedPerSecond>()
                 };
                 for (int j = 0; j < 60; j++)//60秒
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x09.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x09.cs
index 209add5..857aa36 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x09.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x09.cs
@@ -46,7 +46,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
                 writer.WriteStartObject();
                 writer.WriteStartObject($"指定的结束时间之前最近的第{i+1}小时的位置信息记录");
                 var hex = reader.ReadVirtualArray(6);
-                jT808_CarDVR_Up_0x09_PositionPerHour.StartTime = reader.ReadDateTime6();
+                jT808_CarDVR_Up_0x09_PositionPerHour.StartTime = reader.ReadDateTime_yyMMddHHmmss();
                 writer.WriteString($"[{hex.ToArray().ToHexString()}]开始时间", jT808_CarDVR_Up_0x09_PositionPerHour.StartTime);
                 for (int j = 0; j < 60; j++)//60钟
                 {
@@ -77,7 +77,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         {
             foreach (var positionPerHour in value.JT808_CarDVR_Up_0x09_PositionPerHours)
             {
-                writer.WriteDateTime6(positionPerHour.StartTime);
+                writer.WriteDateTime_yyMMddHHmmss(positionPerHour.StartTime);
                 for (int i = 0; i < 60; i++)
                 {
                     if (i < positionPerHour.JT808_CarDVR_Up_0x09_PositionPerMinutes.Count)
@@ -111,7 +111,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
             {
                 JT808_CarDVR_Up_0x09_PositionPerHour jT808_CarDVR_Up_0x09_PositionPerHour = new JT808_CarDVR_Up_0x09_PositionPerHour()
                 {
-                    StartTime = reader.ReadDateTime6(),
+                    StartTime = reader.ReadDateTime_yyMMddHHmmss(),
                     JT808_CarDVR_Up_0x09_PositionPerMinutes = new List<JT808_CarDVR_Up_0x09_PositionPerMinute>()
                 };
                 for (int j = 0; j < 60; j++)//60钟
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x10.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x10.cs
index 5e86a52..fced671 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x10.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x10.cs
@@ -47,7 +47,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
                 writer.WriteStartObject();
                 writer.WriteStartObject($"指定的结束时间之前最近的第{i+1}条事故疑点记录");
                 var hex = reader.ReadVirtualArray(6);
-                jT808_CarDVR_Up_0x10_AccidentSuspectin.EndTime = reader.ReadDateTime6();
+                jT808_CarDVR_Up_0x10_AccidentSuspectin.EndTime = reader.ReadDateTime_yyMMddHHmmss();
                 writer.WriteString($"[{hex.ToArray().ToHexString()}]行驶结束时间", jT808_CarDVR_Up_0x10_AccidentSuspectin.EndTime);
                 hex = reader.ReadVirtualArray(18);
                 jT808_CarDVR_Up_0x10_AccidentSuspectin.DriverLicenseNo = reader.ReadASCII(18);
@@ -89,7 +89,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         {
             foreach (var accidentSuspectin in value.JT808_CarDVR_Up_0x10_AccidentSuspectins)
             {
-                writer.WriteDateTime6(accidentSuspectin.EndTime);
+                writer.WriteDateTime_yyMMddHHmmss(accidentSuspectin.EndTime);
                 var currentPosition = writer.GetCurrentPosition();
                 writer.WriteASCII(accidentSuspectin.DriverLicenseNo);
                 writer.Skip(18 - (writer.GetCurrentPosition() - currentPosition), out var _);
@@ -125,7 +125,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
             for (int i = 0; i < count; i++)
             {
                 JT808_CarDVR_Up_0x10_AccidentSuspectin jT808_CarDVR_Up_0x10_AccidentSuspectin = new JT808_CarDVR_Up_0x10_AccidentSuspectin();
-                jT808_CarDVR_Up_0x10_AccidentSuspectin.EndTime = reader.ReadDateTime6();
+                jT808_CarDVR_Up_0x10_AccidentSuspectin.EndTime = reader.ReadDateTime_yyMMddHHmmss();
                 jT808_CarDVR_Up_0x10_AccidentSuspectin.DriverLicenseNo = reader.ReadASCII(18);
                 jT808_CarDVR_Up_0x10_AccidentSuspectin.JT808_CarDVR_Up_0x10_DrivingStatuss = new List<JT808_CarDVR_Up_0x10_DrivingStatus>();
                 for (int j = 0; j < 100; j++)//100组
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x11.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x11.cs
index df03b96..d83e7b8 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x11.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x11.cs
@@ -48,10 +48,10 @@ namespace JT808.Protocol.MessageBody.CarDVR
                 jT808_CarDVR_Up_0x11_DriveOverTime.DriverLicenseNo = reader.ReadASCII(18);
                 writer.WriteString($"[{hex.ToArray().ToHexString()}机动车驾驶证号码]", jT808_CarDVR_Up_0x11_DriveOverTime.DriverLicenseNo);
                 hex = reader.ReadVirtualArray(6);
-                jT808_CarDVR_Up_0x11_DriveOverTime.ContinueDrivingStartTime = reader.ReadDateTime6();
+                jT808_CarDVR_Up_0x11_DriveOverTime.ContinueDrivingStartTime = reader.ReadDateTime_yyMMddHHmmss();
                 writer.WriteString($"[{hex.ToArray().ToHexString()}连续驾驶开始时间]", jT808_CarDVR_Up_0x11_DriveOverTime.ContinueDrivingStartTime);
                 hex = reader.ReadVirtualArray(6);
-                jT808_CarDVR_Up_0x11_DriveOverTime.ContinueDrivingEndTime = reader.ReadDateTime6();
+                jT808_CarDVR_Up_0x11_DriveOverTime.ContinueDrivingEndTime = reader.ReadDateTime_yyMMddHHmmss();
                 writer.WriteString($"[{hex.ToArray().ToHexString()}连续驾驶结束时间]", jT808_CarDVR_Up_0x11_DriveOverTime.ContinueDrivingEndTime);
                 writer.WriteStartObject("连续驾驶开始时间所在的最近一次有效位置信息");
                 jT808_CarDVR_Up_0x11_DriveOverTime.GpsStartLng = reader.ReadInt32();
@@ -87,8 +87,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
                 var currentPosition = writer.GetCurrentPosition();
                 writer.WriteASCII(driveOverTime.DriverLicenseNo);
                 writer.Skip(18 - (writer.GetCurrentPosition() - currentPosition), out var _);
-                writer.WriteDateTime6(driveOverTime.ContinueDrivingStartTime);
-                writer.WriteDateTime6(driveOverTime.ContinueDrivingEndTime);
+                writer.WriteDateTime_yyMMddHHmmss(driveOverTime.ContinueDrivingStartTime);
+                writer.WriteDateTime_yyMMddHHmmss(driveOverTime.ContinueDrivingEndTime);
                 writer.WriteInt32(driveOverTime.GpsStartLng);
                 writer.WriteInt32(driveOverTime.GpsStartLat);
                 writer.WriteInt16(driveOverTime.StartHeight);
@@ -112,8 +112,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
             {
                 JT808_CarDVR_Up_0x11_DriveOverTime jT808_CarDVR_Up_0x11_DriveOverTime = new JT808_CarDVR_Up_0x11_DriveOverTime();
                 jT808_CarDVR_Up_0x11_DriveOverTime.DriverLicenseNo = reader.ReadASCII(18);
-                jT808_CarDVR_Up_0x11_DriveOverTime.ContinueDrivingStartTime = reader.ReadDateTime6();
-                jT808_CarDVR_Up_0x11_DriveOverTime.ContinueDrivingEndTime = reader.ReadDateTime6();
+                jT808_CarDVR_Up_0x11_DriveOverTime.ContinueDrivingStartTime = reader.ReadDateTime_yyMMddHHmmss();
+                jT808_CarDVR_Up_0x11_DriveOverTime.ContinueDrivingEndTime = reader.ReadDateTime_yyMMddHHmmss();
                 jT808_CarDVR_Up_0x11_DriveOverTime.GpsStartLng = reader.ReadInt32();
                 jT808_CarDVR_Up_0x11_DriveOverTime.GpsStartLat = reader.ReadInt32();
                 jT808_CarDVR_Up_0x11_DriveOverTime.StartHeight = reader.ReadInt16();
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x12.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x12.cs
index 02b61fc..775e109 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x12.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x12.cs
@@ -45,7 +45,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
                 writer.WriteStartObject();
                 writer.WriteStartObject($"指定的结束时间之前最近的第 {i+1}条驾驶人登录退出记录");
                 var hex = reader.ReadVirtualArray(6);
-                jT808_CarDVR_Up_0x12_DriveLogin.LoginTime = reader.ReadDateTime6();
+                jT808_CarDVR_Up_0x12_DriveLogin.LoginTime = reader.ReadDateTime_yyMMddHHmmss();
                 writer.WriteString($"[{hex.ToArray().ToHexString()}]登录/登出发生时间", jT808_CarDVR_Up_0x12_DriveLogin.LoginTime);
                 hex = reader.ReadVirtualArray(18);
                 jT808_CarDVR_Up_0x12_DriveLogin.DriverLicenseNo = reader.ReadASCII(18);
@@ -81,7 +81,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         {
             foreach (var driveLogin in value.JT808_CarDVR_Up_0x12_DriveLogins)
             {
-                writer.WriteDateTime6(driveLogin.LoginTime);
+                writer.WriteDateTime_yyMMddHHmmss(driveLogin.LoginTime);
                 var currentPosition = writer.GetCurrentPosition();
                 writer.WriteASCII(driveLogin.DriverLicenseNo);
                 writer.Skip(18 - (writer.GetCurrentPosition() - currentPosition), out var _);
@@ -102,7 +102,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
             for (int i = 0; i < count; i++)
             {
                 JT808_CarDVR_Up_0x12_DriveLogin jT808_CarDVR_Up_0x12_DriveLogin = new JT808_CarDVR_Up_0x12_DriveLogin();
-                jT808_CarDVR_Up_0x12_DriveLogin.LoginTime = reader.ReadDateTime6();
+                jT808_CarDVR_Up_0x12_DriveLogin.LoginTime = reader.ReadDateTime_yyMMddHHmmss();
                 jT808_CarDVR_Up_0x12_DriveLogin.DriverLicenseNo = reader.ReadASCII(18);
                 jT808_CarDVR_Up_0x12_DriveLogin.LoginType = reader.ReadByte();
                 value.JT808_CarDVR_Up_0x12_DriveLogins.Add(jT808_CarDVR_Up_0x12_DriveLogin);
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x13.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x13.cs
index 590813b..6747517 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x13.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x13.cs
@@ -45,7 +45,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
                 writer.WriteStartObject();
                 writer.WriteStartObject($"从指定的结束时间之前最近的第{i+1}条外部电源记录");
                 var hex = reader.ReadVirtualArray(6);
-                jT808_CarDVR_Up_0x13_ExternalPowerSupply.EventTime = reader.ReadDateTime6();
+                jT808_CarDVR_Up_0x13_ExternalPowerSupply.EventTime = reader.ReadDateTime_yyMMddHHmmss();
                 writer.WriteString($"[{hex.ToArray().ToHexString()}]事件发生时间", jT808_CarDVR_Up_0x13_ExternalPowerSupply.EventTime);
                 jT808_CarDVR_Up_0x13_ExternalPowerSupply.EventType = reader.ReadByte();
                 writer.WriteString($"[{  jT808_CarDVR_Up_0x13_ExternalPowerSupply.EventType.ReadNumber()}]事件类型", EventTypeDisplay(jT808_CarDVR_Up_0x13_ExternalPowerSupply.EventType));
@@ -74,7 +74,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         {
             foreach (var externalPowerSupply in value.JT808_CarDVR_Up_0x13_ExternalPowerSupplys)
             {
-                writer.WriteDateTime6(externalPowerSupply.EventTime);
+                writer.WriteDateTime_yyMMddHHmmss(externalPowerSupply.EventTime);
                 writer.WriteByte(externalPowerSupply.EventType);
             }
         }
@@ -92,7 +92,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
             for (int i = 0; i < count; i++)
             {
                 JT808_CarDVR_Up_0x13_ExternalPowerSupply jT808_CarDVR_Up_0x13_ExternalPowerSupply = new JT808_CarDVR_Up_0x13_ExternalPowerSupply();
-                jT808_CarDVR_Up_0x13_ExternalPowerSupply.EventTime = reader.ReadDateTime6();
+                jT808_CarDVR_Up_0x13_ExternalPowerSupply.EventTime = reader.ReadDateTime_yyMMddHHmmss();
                 jT808_CarDVR_Up_0x13_ExternalPowerSupply.EventType = reader.ReadByte();
                 value.JT808_CarDVR_Up_0x13_ExternalPowerSupplys.Add(jT808_CarDVR_Up_0x13_ExternalPowerSupply);
             }
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x14.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x14.cs
index 4fa8311..4912f37 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x14.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x14.cs
@@ -45,7 +45,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
                 writer.WriteStartObject();
                 writer.WriteStartObject($"指定的结束时间之前最近的第{i+1}条参数修改记录");
                 var hex = reader.ReadVirtualArray(6);
-                jT808_CarDVR_Up_0x14_ParameterModify.EventTime = reader.ReadDateTime6();
+                jT808_CarDVR_Up_0x14_ParameterModify.EventTime = reader.ReadDateTime_yyMMddHHmmss();
                 writer.WriteString($"[{hex.ToArray().ToHexString()}]事件发生时间", jT808_CarDVR_Up_0x14_ParameterModify.EventTime);
                 jT808_CarDVR_Up_0x14_ParameterModify.EventType = reader.ReadByte();
                 writer.WriteString($"[{  jT808_CarDVR_Up_0x14_ParameterModify.EventType.ReadNumber()}]事件类型", ((JT808CarDVRCommandID)jT808_CarDVR_Up_0x14_ParameterModify.EventType).ToString());
@@ -64,7 +64,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
         {
             foreach (var parameterModify in value.JT808_CarDVR_Up_0x14_ParameterModifys)
             {
-                writer.WriteDateTime6(parameterModify.EventTime);
+                writer.WriteDateTime_yyMMddHHmmss(parameterModify.EventTime);
                 writer.WriteByte(parameterModify.EventType);
             }
         }
@@ -82,7 +82,7 @@ namespace JT808.Protocol.MessageBody.CarDVR
             for (int i = 0; i < count; i++)
             {
                 JT808_CarDVR_Up_0x14_ParameterModify jT808_CarDVR_Up_0x14_ParameterModify = new JT808_CarDVR_Up_0x14_ParameterModify();
-                jT808_CarDVR_Up_0x14_ParameterModify.EventTime = reader.ReadDateTime6();
+                jT808_CarDVR_Up_0x14_ParameterModify.EventTime = reader.ReadDateTime_yyMMddHHmmss();
                 jT808_CarDVR_Up_0x14_ParameterModify.EventType = reader.ReadByte();
                 value.JT808_CarDVR_Up_0x14_ParameterModifys.Add(jT808_CarDVR_Up_0x14_ParameterModify);
             }
diff --git a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x15.cs b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x15.cs
index 371c353..8e3759a 100644
--- a/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x15.cs
+++ b/src/JT808.Protocol/MessageBody/CarDVR/JT808_CarDVR_Up_0x15.cs
@@ -47,10 +47,10 @@ namespace JT808.Protocol.MessageBody.CarDVR
                 jT808_CarDVR_Up_0x15_SpeedStatusLog.SpeedStatus = reader.ReadByte();
                 writer.WriteString($"[{ jT808_CarDVR_Up_0x15_SpeedStatusLog.SpeedStatus.ReadNumber()}]速度状态", SpeedStatusDisplay(jT808_CarDVR_Up_0x15_SpeedStatusLog.SpeedStatus));
                 var hex = reader.ReadVirtualArray(6);
-                jT808_CarDVR_Up_0x15_SpeedStatusLog.SpeedStatusStartTime = reader.ReadDateTime6();
+                jT808_CarDVR_Up_0x15_SpeedStatusLog.SpeedStatusStartTime = reader.ReadDateTime_yyMMddHHmmss();
                 writer.WriteString($"[{ hex.ToArray().ToHexString()}]速度状态判定的开始时间", jT808_CarDVR_Up_0x15_SpeedStatusLog.SpeedStatusStartTime);
                 hex = reader.ReadVirtualArray(6);
-                jT808_CarDVR_Up_0x15_SpeedStatusLog.SpeedStatusEndTime = reader.ReadDateTime6();
+                jT808_CarDVR_Up_0x15_SpeedStatusLog.SpeedStatusEndTime = reader.ReadDateTime_yyMMddHHmmss();
                 writer.WriteString($"[{ hex.ToArray().ToHexString()}]速度状态判定的结束时间", jT808_CarDVR_Up_0x15_SpeedStatusLog.SpeedStatusEndTime);
                 writer.WriteStartArray("前60s速度状态日志");
                 for (int j = 0; j < 60; j++)//60组
@@ -104,8 +104,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
             foreach (var speedStatusLog in value.JT808_CarDVR_Up_0x15_SpeedStatusLogs)
             {
                 writer.WriteByte(speedStatusLog.SpeedStatus);
-                writer.WriteDateTime6(speedStatusLog.SpeedStatusStartTime);
-                writer.WriteDateTime6(speedStatusLog.SpeedStatusEndTime);
+                writer.WriteDateTime_yyMMddHHmmss(speedStatusLog.SpeedStatusStartTime);
+                writer.WriteDateTime_yyMMddHHmmss(speedStatusLog.SpeedStatusEndTime);
                 for (int i = 0; i < 60; i++)
                 {
                     if (i < speedStatusLog.JT808_CarDVR_Up_0x15_SpeedPerSeconds.Count)
@@ -135,8 +135,8 @@ namespace JT808.Protocol.MessageBody.CarDVR
             {
                 JT808_CarDVR_Up_0x15_SpeedStatusLog jT808_CarDVR_Up_0x15_SpeedStatusLog = new JT808_CarDVR_Up_0x15_SpeedStatusLog();
                 jT808_CarDVR_Up_0x15_SpeedStatusLog.SpeedStatus = reader.ReadByte();
-                jT808_CarDVR_Up_0x15_SpeedStatusLog.SpeedStatusStartTime = reader.ReadDateTime6();
-                jT808_CarDVR_Up_0x15_SpeedStatusLog.SpeedStatusEndTime = reader.ReadDateTime6();
+                jT808_CarDVR_Up_0x15_SpeedStatusLog.SpeedStatusStartTime = reader.ReadDateTime_yyMMddHHmmss();
+                jT808_CarDVR_Up_0x15_SpeedStatusLog.SpeedStatusEndTime = reader.ReadDateTime_yyMMddHHmmss();
                 jT808_CarDVR_Up_0x15_SpeedStatusLog.JT808_CarDVR_Up_0x15_SpeedPerSeconds = new List<JT808_CarDVR_Up_0x15_SpeedPerSecond>();
                 for (int j = 0; j < 60; j++)//60组
                 {
diff --git a/src/JT808.Protocol/MessageBody/JT808_0x0200.cs b/src/JT808.Protocol/MessageBody/JT808_0x0200.cs
index 60401bd..452ba14 100644
--- a/src/JT808.Protocol/MessageBody/JT808_0x0200.cs
+++ b/src/JT808.Protocol/MessageBody/JT808_0x0200.cs
@@ -130,7 +130,7 @@ namespace JT808.Protocol.MessageBody
             jT808_0X0200.Altitude = reader.ReadUInt16();
             jT808_0X0200.Speed = reader.ReadUInt16();
             jT808_0X0200.Direction = reader.ReadUInt16();
-            jT808_0X0200.GPSTime = reader.ReadDateTime6();
+            jT808_0X0200.GPSTime = reader.ReadDateTime_yyMMddHHmmss();
             // 位置附加信息
             jT808_0X0200.BasicLocationAttachData = new Dictionary<byte, JT808_0x0200_BodyBase>();
             jT808_0X0200.CustomLocationAttachData = new Dictionary<byte, JT808_0x0200_CustomBodyBase>();
@@ -313,7 +313,7 @@ namespace JT808.Protocol.MessageBody
             writer.WriteUInt16(value.Altitude);
             writer.WriteUInt16(value.Speed);
             writer.WriteUInt16(value.Direction);
-            writer.WriteDateTime6(value.GPSTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.GPSTime);
             if (value.BasicLocationAttachData != null && value.BasicLocationAttachData.Count > 0)
             {
                 foreach (var item in value.BasicLocationAttachData)
@@ -512,7 +512,7 @@ namespace JT808.Protocol.MessageBody
             writer.WriteNumber($"[{value.Speed.ReadNumber()}]速度", value.Speed);
             value.Direction = reader.ReadUInt16();
             writer.WriteNumber($"[{value.Direction.ReadNumber()}]方向", value.Direction);
-            value.GPSTime = reader.ReadDateTime6();
+            value.GPSTime = reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{value.GPSTime:yyMMddHHmmss}]定位时间", value.GPSTime.ToString("yyyy-MM-dd HH:mm:ss"));
             // 位置附加信息
             value.BasicLocationAttachData = new Dictionary<byte, JT808_0x0200_BodyBase>();
diff --git a/src/JT808.Protocol/MessageBody/JT808_0x0702.cs b/src/JT808.Protocol/MessageBody/JT808_0x0702.cs
index b42be1f..72c7620 100644
--- a/src/JT808.Protocol/MessageBody/JT808_0x0702.cs
+++ b/src/JT808.Protocol/MessageBody/JT808_0x0702.cs
@@ -102,7 +102,7 @@ namespace JT808.Protocol.MessageBody
             {
                 value.IC_Card_Status = (JT808ICCardStatus)reader.ReadByte();
                 writer.WriteNumber($"[{((byte)value.IC_Card_Status).ReadNumber()}]状态-{value.IC_Card_Status.ToString()}", (byte)value.IC_Card_Status);
-                value.IC_Card_PlugDateTime = reader.ReadDateTime6();
+                value.IC_Card_PlugDateTime = reader.ReadDateTime_yyMMddHHmmss();
                 writer.WriteString($"[{value.IC_Card_PlugDateTime.ToString("yyMMddHHmmss")}]插拔卡时间", value.IC_Card_PlugDateTime.ToString("yyyy-MM-dd HH:mm:ss"));
                 if (value.IC_Card_Status == JT808ICCardStatus.从业资格证IC卡插入_驾驶员上班)
                 {
@@ -123,7 +123,7 @@ namespace JT808.Protocol.MessageBody
                         var licenseIssuingLengtheBuffer = reader.ReadVirtualArray(value.LicenseIssuingLength);
                         value.LicenseIssuing = reader.ReadString(value.LicenseIssuingLength);
                         writer.WriteString($"[{licenseIssuingLengtheBuffer.ToArray().ToHexString()}]发证机构名称", value.LicenseIssuing);
-                        value.CertificateExpiresDate = reader.ReadDateTime4();
+                        value.CertificateExpiresDate = reader.ReadDateTime_YYYYMMDD();
                         writer.WriteString($"[{value.CertificateExpiresDate.ToString("yyMMdd")}]插拔卡时间", value.CertificateExpiresDate.ToString("yyyy-MM-dd"));
                         if (reader.Version == JT808Version.JTT2019)
                         {
@@ -150,7 +150,7 @@ namespace JT808.Protocol.MessageBody
                     //如果字节是0x02且长度只有7,那么该协议就是2013或者2019
                     value.IC_Card_Status = (JT808ICCardStatus)reader.ReadByte();
                     writer.WriteNumber($"[{((byte)value.IC_Card_Status).ReadNumber()}]状态-{value.IC_Card_Status.ToString()}", (byte)value.IC_Card_Status);
-                    value.IC_Card_PlugDateTime = reader.ReadDateTime6();
+                    value.IC_Card_PlugDateTime = reader.ReadDateTime_yyMMddHHmmss();
                     writer.WriteString($"[{value.IC_Card_PlugDateTime.ToString("yyMMddHHmmss")}]插拔卡时间", value.IC_Card_PlugDateTime.ToString("yyyy-MM-dd HH:mm:ss"));
                 }
                 else
@@ -188,7 +188,7 @@ namespace JT808.Protocol.MessageBody
             if (firstByte == 0x01)
             {
                 value.IC_Card_Status = (JT808ICCardStatus)reader.ReadByte();
-                value.IC_Card_PlugDateTime = reader.ReadDateTime6();
+                value.IC_Card_PlugDateTime = reader.ReadDateTime_yyMMddHHmmss();
                 if (value.IC_Card_Status == JT808ICCardStatus.从业资格证IC卡插入_驾驶员上班)
                 {
                     value.IC_Card_ReadResult = (JT808ICCardReadResult)reader.ReadByte();
@@ -199,7 +199,7 @@ namespace JT808.Protocol.MessageBody
                         value.QualificationCode = reader.ReadString(20);
                         value.LicenseIssuingLength = reader.ReadByte();
                         value.LicenseIssuing = reader.ReadString(value.LicenseIssuingLength);
-                        value.CertificateExpiresDate = reader.ReadDateTime4();
+                        value.CertificateExpiresDate = reader.ReadDateTime_YYYYMMDD();
                         if (reader.Version == JT808Version.JTT2019)
                         {
                             value.DriverIdentityCard = reader.ReadString(20);
@@ -219,7 +219,7 @@ namespace JT808.Protocol.MessageBody
                 {
                     //如果字节是0x02且长度只有7,那么该协议就是2013或者2019
                     value.IC_Card_Status = (JT808ICCardStatus)reader.ReadByte();
-                    value.IC_Card_PlugDateTime = reader.ReadDateTime6();
+                    value.IC_Card_PlugDateTime = reader.ReadDateTime_yyMMddHHmmss();
                 }
                 else {
                     value.DriverUserNameLength = reader.ReadByte();
@@ -251,7 +251,7 @@ namespace JT808.Protocol.MessageBody
             }
             else {
                 writer.WriteByte((byte)value.IC_Card_Status);
-                writer.WriteDateTime6(value.IC_Card_PlugDateTime);
+                writer.WriteDateTime_yyMMddHHmmss(value.IC_Card_PlugDateTime);
                 if (value.IC_Card_Status == JT808ICCardStatus.从业资格证IC卡插入_驾驶员上班)
                 {
                     writer.WriteByte((byte)value.IC_Card_ReadResult);
@@ -262,7 +262,7 @@ namespace JT808.Protocol.MessageBody
                         writer.WriteString(value.QualificationCode.PadLeft(20, '\0').ValiString(nameof(value.QualificationCode), 20));
                         writer.WriteByte((byte)value.LicenseIssuing.Length);
                         writer.WriteString(value.LicenseIssuing);
-                        writer.WriteDateTime4(value.CertificateExpiresDate);
+                        writer.WriteDateTime_YYYYMMDD(value.CertificateExpiresDate);
                         if (writer.Version == JT808Version.JTT2019)
                         {
                             writer.WriteString(value.DriverIdentityCard.PadLeft(20, '\0').ValiString(nameof(value.DriverIdentityCard), 20));
diff --git a/src/JT808.Protocol/MessageBody/JT808_0x0705.cs b/src/JT808.Protocol/MessageBody/JT808_0x0705.cs
index 2b6cfa4..c32472c 100644
--- a/src/JT808.Protocol/MessageBody/JT808_0x0705.cs
+++ b/src/JT808.Protocol/MessageBody/JT808_0x0705.cs
@@ -50,7 +50,7 @@ namespace JT808.Protocol.MessageBody
             value.CanItemCount = reader.ReadUInt16();
             writer.WriteNumber($"[{value.CanItemCount.ReadNumber()}]数据项个数", value.CanItemCount);
             var dateTimeBuffer = reader.ReadVirtualArray(5).ToArray();
-            value.FirstCanReceiveTime = reader.ReadDateTime5();
+            value.FirstCanReceiveTime = reader.ReadDateTime_HHmmssfff();
             writer.WriteString($"[{dateTimeBuffer.ToHexString()}]CAN总线数据接收时间", value.FirstCanReceiveTime.ToString("HH-mm-ss:fff"));
             writer.WriteStartArray("CAN总线数据项");
             for (var i = 0; i < value.CanItemCount; i++)
@@ -79,7 +79,7 @@ namespace JT808.Protocol.MessageBody
         {
             JT808_0x0705 value = new JT808_0x0705();
             value.CanItemCount = reader.ReadUInt16();
-            value.FirstCanReceiveTime = reader.ReadDateTime5();
+            value.FirstCanReceiveTime = reader.ReadDateTime_HHmmssfff();
             value.CanItems = new List<JT808CanProperty>();
             for (var i = 0; i < value.CanItemCount; i++)
             {
@@ -105,7 +105,7 @@ namespace JT808.Protocol.MessageBody
             if (value.CanItems != null && value.CanItems.Count > 0)
             {
                 writer.WriteUInt16((ushort)value.CanItems.Count);
-                writer.WriteDateTime5(value.FirstCanReceiveTime);
+                writer.WriteDateTime_HHmmssfff(value.FirstCanReceiveTime);
                 foreach (var item in value.CanItems)
                 {
                     writer.WriteUInt32(item.CanId);
diff --git a/src/JT808.Protocol/MessageBody/JT808_0x0801.cs b/src/JT808.Protocol/MessageBody/JT808_0x0801.cs
index 2965269..96742f0 100644
--- a/src/JT808.Protocol/MessageBody/JT808_0x0801.cs
+++ b/src/JT808.Protocol/MessageBody/JT808_0x0801.cs
@@ -45,7 +45,9 @@ namespace JT808.Protocol.MessageBody
         /// 通道 ID
         /// </summary>
         public byte ChannelId { get; set; }
-
+        /// <summary>
+        /// 定位错误
+        /// </summary>
         public bool PositionError { get; set; }
         /// <summary>
         /// 位置信息汇报(0x0200)消息体
diff --git a/src/JT808.Protocol/MessageBody/JT808_0x8004.cs b/src/JT808.Protocol/MessageBody/JT808_0x8004.cs
index 8643a23..7311887 100644
--- a/src/JT808.Protocol/MessageBody/JT808_0x8004.cs
+++ b/src/JT808.Protocol/MessageBody/JT808_0x8004.cs
@@ -32,7 +32,7 @@ namespace JT808.Protocol.MessageBody
         /// <param name="config"></param>
         public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
         {
-            var datetime= reader.ReadDateTime6();
+            var datetime= reader.ReadDateTime_yyMMddHHmmss();
             writer.WriteString($"[{ datetime.ToString("yyMMddHHmmss")}]查询服务器时间应答", datetime.ToString("yyyy-MM-dd HH:mm:ss"));
         }
         /// <summary>
@@ -44,7 +44,7 @@ namespace JT808.Protocol.MessageBody
         public JT808_0x8004 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
         {
             JT808_0x8004 value = new JT808_0x8004();
-            value.Time = reader.ReadDateTime6();
+            value.Time = reader.ReadDateTime_yyMMddHHmmss();
             return value;
         }
         /// <summary>
@@ -55,7 +55,7 @@ namespace JT808.Protocol.MessageBody
         /// <param name="config"></param>
         public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8004 value, IJT808Config config)
         {
-            writer.WriteDateTime6(value.Time);
+            writer.WriteDateTime_yyMMddHHmmss(value.Time);
         }
     }
 }
diff --git a/src/JT808.Protocol/MessageBody/JT808_0x8600.cs b/src/JT808.Protocol/MessageBody/JT808_0x8600.cs
index b5f89a0..acd708d 100644
--- a/src/JT808.Protocol/MessageBody/JT808_0x8600.cs
+++ b/src/JT808.Protocol/MessageBody/JT808_0x8600.cs
@@ -63,8 +63,8 @@ namespace JT808.Protocol.MessageBody
                 bool bit0Flag = areaProperty16Bit.Slice(areaProperty16Bit.Length - 1).ToString().Equals("0");
                 if (!bit0Flag)
                 {
-                    jT808CircleAreaProperty.StartTime = reader.ReadDateTime6();
-                    jT808CircleAreaProperty.EndTime = reader.ReadDateTime6();
+                    jT808CircleAreaProperty.StartTime = reader.ReadDateTime_yyMMddHHmmss();
+                    jT808CircleAreaProperty.EndTime = reader.ReadDateTime_yyMMddHHmmss();
                 }
                 bool bit1Flag = areaProperty16Bit.Slice(areaProperty16Bit.Length - 2, 1).ToString().Equals("0");
                 if (!bit1Flag)
@@ -110,11 +110,11 @@ namespace JT808.Protocol.MessageBody
                     {
                         if (item.StartTime.HasValue)
                         {
-                            writer.WriteDateTime6(item.StartTime.Value);
+                            writer.WriteDateTime_yyMMddHHmmss(item.StartTime.Value);
                         }
                         if (item.EndTime.HasValue)
                         {
-                            writer.WriteDateTime6(item.EndTime.Value);
+                            writer.WriteDateTime_yyMMddHHmmss(item.EndTime.Value);
                         }
                     }
                     bool bit1Flag = areaProperty16Bit.Slice(areaProperty16Bit.Length - 2, 1).ToString().Equals("0");
@@ -208,9 +208,9 @@ namespace JT808.Protocol.MessageBody
                 bool bit0Flag = areaProperty16Bit.Slice(areaProperty16Bit.Length - 1).ToString().Equals("0");
                 if (!bit0Flag)
                 {
-                    jT808CircleAreaProperty.StartTime = reader.ReadDateTime6();
+                    jT808CircleAreaProperty.StartTime = reader.ReadDateTime_yyMMddHHmmss();
                     writer.WriteString($"[{ jT808CircleAreaProperty.StartTime.Value.ToString("yyMMddHHmmss")}]起始时间", jT808CircleAreaProperty.StartTime.Value.ToString("yyyy-MM-dd HH:mm:ss"));
-                    jT808CircleAreaProperty.EndTime = reader.ReadDateTime6();
+                    jT808CircleAreaProperty.EndTime = reader.ReadDateTime_yyMMddHHmmss();
                     writer.WriteString($"[{ jT808CircleAreaProperty.EndTime.Value.ToString("yyMMddHHmmss")}]结束时间", jT808CircleAreaProperty.EndTime.Value.ToString("yyyy-MM-dd HH:mm:ss"));
                 }
                 bool bit1Flag = areaProperty16Bit.Slice(areaProperty16Bit.Length - 2, 1).ToString().Equals("0");
diff --git a/src/JT808.Protocol/MessageBody/JT808_0x8602.cs b/src/JT808.Protocol/MessageBody/JT808_0x8602.cs
index 91ec73a..725b5e5 100644
--- a/src/JT808.Protocol/MessageBody/JT808_0x8602.cs
+++ b/src/JT808.Protocol/MessageBody/JT808_0x8602.cs
@@ -63,8 +63,8 @@ namespace JT808.Protocol.MessageBody
                 bool bit0Flag = areaProperty16Bit.Slice(areaProperty16Bit.Length - 1).ToString().Equals("0");
                 if (!bit0Flag)
                 {
-                    areaProperty.StartTime = reader.ReadDateTime6();
-                    areaProperty.EndTime = reader.ReadDateTime6();
+                    areaProperty.StartTime = reader.ReadDateTime_yyMMddHHmmss();
+                    areaProperty.EndTime = reader.ReadDateTime_yyMMddHHmmss();
                 }
                 bool bit1Flag = areaProperty16Bit.Slice(areaProperty16Bit.Length - 2, 1).ToString().Equals("0");
                 if (!bit1Flag)
@@ -111,11 +111,11 @@ namespace JT808.Protocol.MessageBody
                     {
                         if (item.StartTime.HasValue)
                         {
-                            writer.WriteDateTime6(item.StartTime.Value);
+                            writer.WriteDateTime_yyMMddHHmmss(item.StartTime.Value);
                         }
                         if (item.EndTime.HasValue)
                         {
-                            writer.WriteDateTime6(item.EndTime.Value);
+                            writer.WriteDateTime_yyMMddHHmmss(item.EndTime.Value);
                         }
                     }
                     bool bit1Flag = areaProperty16Bit.Slice(areaProperty16Bit.Length - 2, 1).ToString().Equals("0");
@@ -211,9 +211,9 @@ namespace JT808.Protocol.MessageBody
                 bool bit0Flag = areaProperty16Bit.Slice(0,1).ToString().Equals("0");
                 if (!bit0Flag)
                 {
-                    areaProperty.StartTime = reader.ReadDateTime6();
+                    areaProperty.StartTime = reader.ReadDateTime_yyMMddHHmmss();
                     writer.WriteString($"[{ areaProperty.StartTime.Value.ToString("yyMMddHHmmss")}]起始时间", areaProperty.StartTime.Value.ToString("yyyy-MM-dd HH:mm:ss"));
-                    areaProperty.EndTime = reader.ReadDateTime6();
+                    areaProperty.EndTime = reader.ReadDateTime_yyMMddHHmmss();
                     writer.WriteString($"[{ areaProperty.EndTime.Value.ToString("yyMMddHHmmss")}]起始时间", areaProperty.EndTime.Value.ToString("yyyy-MM-dd HH:mm:ss"));
                 }
                 bool bit1Flag = areaProperty16Bit.Slice(1, 1).ToString().Equals("0");
diff --git a/src/JT808.Protocol/MessageBody/JT808_0x8604.cs b/src/JT808.Protocol/MessageBody/JT808_0x8604.cs
index fe6f623..1b6d658 100644
--- a/src/JT808.Protocol/MessageBody/JT808_0x8604.cs
+++ b/src/JT808.Protocol/MessageBody/JT808_0x8604.cs
@@ -92,8 +92,8 @@ namespace JT808.Protocol.MessageBody
             bool bit0Flag = areaProperty16Bit.Slice(areaProperty16Bit.Length - 1).ToString().Equals("0");
             if (!bit0Flag)
             {
-                jT808_0X8604.StartTime = reader.ReadDateTime6();
-                jT808_0X8604.EndTime = reader.ReadDateTime6();
+                jT808_0X8604.StartTime = reader.ReadDateTime_yyMMddHHmmss();
+                jT808_0X8604.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             }
             bool bit1Flag = areaProperty16Bit.Slice(areaProperty16Bit.Length - 2, 1).ToString().Equals("0");
             if (!bit1Flag)
@@ -137,11 +137,11 @@ namespace JT808.Protocol.MessageBody
             {
                 if (value.StartTime.HasValue)
                 {
-                    writer.WriteDateTime6(value.StartTime.Value);
+                    writer.WriteDateTime_yyMMddHHmmss(value.StartTime.Value);
                 }
                 if (value.EndTime.HasValue)
                 {
-                    writer.WriteDateTime6(value.EndTime.Value);
+                    writer.WriteDateTime_yyMMddHHmmss(value.EndTime.Value);
                 }
             }
             bool bit1Flag = areaProperty16Bit.Slice(areaProperty16Bit.Length - 2, 1).ToString().Equals("0");
@@ -225,9 +225,9 @@ namespace JT808.Protocol.MessageBody
             bool bit0Flag = areaPropertyBits.Slice(0,1).ToString().Equals("0");
             if (!bit0Flag)
             {
-                value.StartTime = reader.ReadDateTime6();
+                value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
                 writer.WriteString($"[{ value.StartTime.Value.ToString("yyMMddHHmmss")}]起始时间", value.StartTime.Value.ToString("yyyy-MM-dd HH:mm:ss"));
-                value.EndTime = reader.ReadDateTime6();
+                value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
                 writer.WriteString($"[{ value.EndTime.Value.ToString("yyMMddHHmmss")}]结束时间", value.EndTime.Value.ToString("yyyy-MM-dd HH:mm:ss"));
             }
             bool bit1Flag = areaPropertyBits.Slice(1, 1).ToString().Equals("0");
diff --git a/src/JT808.Protocol/MessageBody/JT808_0x8606.cs b/src/JT808.Protocol/MessageBody/JT808_0x8606.cs
index d176686..07ebc4f 100644
--- a/src/JT808.Protocol/MessageBody/JT808_0x8606.cs
+++ b/src/JT808.Protocol/MessageBody/JT808_0x8606.cs
@@ -75,8 +75,8 @@ namespace JT808.Protocol.MessageBody
             bool bit0Flag = routeProperty16Bit.Slice(routeProperty16Bit.Length - 1).ToString().Equals("0");
             if (!bit0Flag)
             {
-                jT808_0X8606.StartTime = reader.ReadDateTime6();
-                jT808_0X8606.EndTime = reader.ReadDateTime6();
+                jT808_0X8606.StartTime = reader.ReadDateTime_yyMMddHHmmss();
+                jT808_0X8606.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             }
             jT808_0X8606.InflectionPointCount = reader.ReadUInt16();
             jT808_0X8606.InflectionPointItems = new List<JT808InflectionPointProperty>();
@@ -128,10 +128,10 @@ namespace JT808.Protocol.MessageBody
             if (!bit0Flag)
             {
                 if (value.StartTime.HasValue)
-                    writer.WriteDateTime6(value.StartTime.Value);
+                    writer.WriteDateTime_yyMMddHHmmss(value.StartTime.Value);
 
                 if (value.EndTime.HasValue)
-                    writer.WriteDateTime6(value.EndTime.Value);
+                    writer.WriteDateTime_yyMMddHHmmss(value.EndTime.Value);
             }
             //bool bit1Flag = routeProperty16Bit.Slice(routeProperty16Bit.Length - 2, 1).ToString().Equals("0");
             if (value.InflectionPointItems != null && value.InflectionPointItems.Count > 0)
@@ -216,9 +216,9 @@ namespace JT808.Protocol.MessageBody
             bool bit0Flag = routeProperty16Bit.Slice(0,1).ToString().Equals("0");
             if (!bit0Flag)
             {
-                value.StartTime = reader.ReadDateTime6();
+                value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
                 writer.WriteString($"[{ value.StartTime.Value.ToString("yyMMddHHmmss")}]起始时间", value.StartTime.Value.ToString("yyyy-MM-dd HH:mm:ss"));
-                value.EndTime = reader.ReadDateTime6();
+                value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
                 writer.WriteString($"[{ value.EndTime.Value.ToString("yyMMddHHmmss")}]结束时间", value.EndTime.Value.ToString("yyyy-MM-dd HH:mm:ss"));
             }
             value.InflectionPointCount = reader.ReadUInt16();
diff --git a/src/JT808.Protocol/MessageBody/JT808_0x8802.cs b/src/JT808.Protocol/MessageBody/JT808_0x8802.cs
index c35843e..c417711 100644
--- a/src/JT808.Protocol/MessageBody/JT808_0x8802.cs
+++ b/src/JT808.Protocol/MessageBody/JT808_0x8802.cs
@@ -59,8 +59,8 @@ namespace JT808.Protocol.MessageBody
             jT808_0X8802.MultimediaType = reader.ReadByte();
             jT808_0X8802.ChannelId = reader.ReadByte();
             jT808_0X8802.EventItemCoding = reader.ReadByte();
-            jT808_0X8802.StartTime = reader.ReadDateTime6();
-            jT808_0X8802.EndTime = reader.ReadDateTime6();
+            jT808_0X8802.StartTime = reader.ReadDateTime_yyMMddHHmmss();
+            jT808_0X8802.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             return jT808_0X8802;
         }
         /// <summary>
@@ -74,8 +74,8 @@ namespace JT808.Protocol.MessageBody
             writer.WriteByte(value.MultimediaType);
             writer.WriteByte(value.ChannelId);
             writer.WriteByte(value.EventItemCoding);
-            writer.WriteDateTime6(value.StartTime);
-            writer.WriteDateTime6(value.EndTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.StartTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.EndTime);
         }
         /// <summary>
         /// 
@@ -89,8 +89,8 @@ namespace JT808.Protocol.MessageBody
             value.MultimediaType = reader.ReadByte();
             value.ChannelId = reader.ReadByte();
             value.EventItemCoding = reader.ReadByte();
-            value.StartTime = reader.ReadDateTime6();
-            value.EndTime = reader.ReadDateTime6();
+            value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             JT808MultimediaType multimediaType = (JT808MultimediaType)value.MultimediaType;
             JT808EventItemCoding eventItemCoding = (JT808EventItemCoding)value.EventItemCoding;
             writer.WriteNumber($"[{ value.MultimediaType.ReadNumber()}]多媒体类型-{multimediaType.ToString()}", value.MultimediaType);
diff --git a/src/JT808.Protocol/MessageBody/JT808_0x8803.cs b/src/JT808.Protocol/MessageBody/JT808_0x8803.cs
index af8492a..4186222 100644
--- a/src/JT808.Protocol/MessageBody/JT808_0x8803.cs
+++ b/src/JT808.Protocol/MessageBody/JT808_0x8803.cs
@@ -65,8 +65,8 @@ namespace JT808.Protocol.MessageBody
             jT808_0X8803.MultimediaType = reader.ReadByte();
             jT808_0X8803.ChannelId = reader.ReadByte();
             jT808_0X8803.EventItemCoding = reader.ReadByte();
-            jT808_0X8803.StartTime = reader.ReadDateTime6();
-            jT808_0X8803.EndTime = reader.ReadDateTime6();
+            jT808_0X8803.StartTime = reader.ReadDateTime_yyMMddHHmmss();
+            jT808_0X8803.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             jT808_0X8803.MultimediaDeleted = reader.ReadByte();
             return jT808_0X8803;
         }
@@ -81,8 +81,8 @@ namespace JT808.Protocol.MessageBody
             writer.WriteByte(value.MultimediaType);
             writer.WriteByte(value.ChannelId);
             writer.WriteByte(value.EventItemCoding);
-            writer.WriteDateTime6(value.StartTime);
-            writer.WriteDateTime6(value.EndTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.StartTime);
+            writer.WriteDateTime_yyMMddHHmmss(value.EndTime);
             writer.WriteByte(value.MultimediaDeleted);
         }
         /// <summary>
@@ -97,8 +97,8 @@ namespace JT808.Protocol.MessageBody
             value.MultimediaType = reader.ReadByte();
             value.ChannelId = reader.ReadByte();
             value.EventItemCoding = reader.ReadByte();
-            value.StartTime = reader.ReadDateTime6();
-            value.EndTime = reader.ReadDateTime6();
+            value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
+            value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
             value.MultimediaDeleted = reader.ReadByte();
             JT808MultimediaType multimediaType = (JT808MultimediaType)value.MultimediaType;
             JT808EventItemCoding eventItemCoding = (JT808EventItemCoding)value.EventItemCoding;
diff --git a/src/JT808.Protocol/MessagePack/JT808MessagePackWriter.cs b/src/JT808.Protocol/MessagePack/JT808MessagePackWriter.cs
index 32a230b..ba0d523 100644
--- a/src/JT808.Protocol/MessagePack/JT808MessagePackWriter.cs
+++ b/src/JT808.Protocol/MessagePack/JT808MessagePackWriter.cs
@@ -698,7 +698,7 @@ namespace JT808.Protocol.MessagePack
             writer.Advance(3);
         }
         /// <summary>
-        /// 写入三个字节的日期类型,YYMMDD 数据形如:20200101
+        /// 写入三个字节的日期类型,YYMMDD 数据形如:200101
         /// </summary>
         /// <param name="value"></param>
         public void WriteDateTime_YYMMDD(in DateTime value)
@@ -711,7 +711,7 @@ namespace JT808.Protocol.MessagePack
             writer.Advance(3);
         }
         /// <summary>
-        /// 写入三个字节的可空日期类型,YYMMDD 数据形如:20200101
+        /// 写入三个字节的可空日期类型,YYMMDD 数据形如:200101
         /// </summary>
         /// <param name="value"></param>
         /// <param name="fromBase"></param>