我想从使用joda的设备上读取日期和时间。 我正在进行BCD to String转换,我试图像这样读取日期和时间:
String s = BCDtoASCII(resultBuff, 6, 8, false);
DateTime dt = new DateTime
(
(Integer.parseInt(s.substring(0, 4))), // year
(Integer.parseInt(s.substring(4, 2))), // month
(Integer.parseInt(s.substring(6, 2))), // day
(Integer.parseInt(s.substring(8, 2))), // hour
(Integer.parseInt(s.substring(10, 2))), // minute
(Integer.parseInt(s.substring(12, 2)))// seconds
);
但我得到了这个例外:
致命异常:Thread-14838 进程:com.calculator.gent.bluetoothcommuncation,PID:17683 java.lang.StringIndexOutOfBoundsException:length = 16; regionStart = 4; regionLength = -2 at java.lang.String.startEndAndLength(String.java:504) 在java.lang.String.substring(String.java:1333)
答案 0 :(得分:2)
答案 1 :(得分:0)
找到解决方案:
String s = BCDtoASCII(resultBuff, 6, 8, false);
DateTime dt = new DateTime
(
(Integer.parseInt(s.substring(0, 4))), // year
(Integer.parseInt(s.substring(4, 6))), // month
(Integer.parseInt(s.substring(6, 8))), // day
(Integer.parseInt(s.substring(8, 10))), // hour
(Integer.parseInt(s.substring(10, 12))), // minute
(Integer.parseInt(s.substring(12, 14))) // seconds
);