diff --git a/stwzhj-modules/wzhj-udp/src/main/java/org/dromara/udp/config/AsyncUtils.java b/stwzhj-modules/wzhj-udp/src/main/java/org/dromara/udp/config/AsyncUtils.java index a7250555..80995f57 100644 --- a/stwzhj-modules/wzhj-udp/src/main/java/org/dromara/udp/config/AsyncUtils.java +++ b/stwzhj-modules/wzhj-udp/src/main/java/org/dromara/udp/config/AsyncUtils.java @@ -108,14 +108,25 @@ public class AsyncUtils { logger.error("jingdu:"+jingdu); long year = BitConverter.byteArrayToShort(Arrays.copyOfRange(copyByte, 44, 46), true); + + byte[] yearBytes = Arrays.copyOfRange(copyByte, 44, 46); + logger.error("Year bytes: %02X %02X\n", yearBytes[0] & 0xFF, yearBytes[1] & 0xFF); + +// Try big-endian + int yearBE = ((yearBytes[0] & 0xFF) << 8) | (yearBytes[1] & 0xFF); +// Try little-endian + int yearLE = ((yearBytes[1] & 0xFF) << 8) | (yearBytes[0] & 0xFF); + + logger.error("Year BE: {}, LE: {}", yearBE, yearLE); + //月日时分秒 byte[] sfm = Arrays.copyOfRange(copyByte, 46, 51); String time = singleByteToString2(sfm); String time2 = singleByteToString2(sfm); - logger.error("time2:"+year+time2); - logger.error("time:"+year+time); + logger.error("year={},time2={}",year,time2); + logger.error("time:"+time); - return BuilderEsGpsInfo(gpsId, lonD, latD, speed, angle, height, jingdu, (year + time2)); + return BuilderEsGpsInfo(gpsId, lonD, latD, speed, angle, height, jingdu, (yearBE + time2)); }