【发布时间】:2011-12-08 22:17:27
【问题描述】:
我正在将十六进制字符串转换为日期格式......我的日期时间错误如下......不知道我在哪里犯了错误。
String s1="07:db:0c:08:16:0d:1e:00"; //2011-12-8,22:13:30.0
s1 = s1.replaceAll(":", "");
String year = s1.substring(0, 4);
String month = s1.substring(4, 6);
String day = s1.substring(6, 8);
String hour = s1.substring(8, 10);
String minute = s1.substring(10, 12);
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, Integer.parseInt(year, 16));
cal.set(Calendar.MONTH, Integer.parseInt(month, 16));
cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(day, 16));
cal.set(Calendar.HOUR, Integer.parseInt(hour, 16));
cal.set(Calendar.MINUTE, Integer.parseInt(minute, 16));
System.out.println(cal.getTime());
我的输出是 'Mon Jan 09 10:13:49 CST 2012'.. 这是不正确的(它应该是 2011-12-8,22:13:30.0 -- 暂时忽略格式)。
【问题讨论】: