如: 7D 17 4F 5B
这是一个时间字节。
大概应该是 1531881242100 才得到当前的时间截。但是,我解码出来,总是数字不对。
这是从modbus里读取来的数据。
反正,高低位,转换来转换去,就是时间不对。如何求解?
以上得出一个 long值,然后用SimpleDateFormat 转为 时间格式的内容。
如: 7D 17 4F 5B
这是一个时间字节。
大概应该是 1531881242100 才得到当前的时间截。但是,我解码出来,总是数字不对。
这是从modbus里读取来的数据。
反正,高低位,转换来转换去,就是时间不对。如何求解?
以上得出一个 long值,然后用SimpleDateFormat 转为 时间格式的内容。
经过不断尝试,无法解析.
@Test
public void test9(){
Date date=new Date(1531910014000L);
System.out.println(date);
}
@Test
public void test10(){
String[] strs=new String[]{"7D","17","4F","5B"};
long lng=1;
for(int i=0;i<strs.length;i++){
lng+=Integer.valueOf(strs[i], 16) * Math.pow(256, Math.abs(i));
}
lng*=1000;
System.out.println(lng);
}
test10输出:1531910014000
test9输出:Wed Jul 18 18:33:34 CST 2018
4 回答1.5k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
3 回答1.9k 阅读
2 回答778 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.3k 阅读
把hex转换为long就可以了,代码就不贴了。你这个四字节是32位,而long是64位,所以你应该是少算了4个字节。