Я пытаюсь преобразовать строковые метки времени вида "201110250830" (ггггММддччмм) в количество миллисекунд (длинное).Я использую следующий код:
Calendar t = Calendar.getInstance();
t.set(Integer.parseInt(ts.substring(0,4)),
Integer.parseInt(ts.substring(4,6)) - 1, // month is 0 based!
Integer.parseInt(ts.substring(6,8)),
Integer.parseInt(ts.substring(8,10)),
Integer.parseInt(ts.substring(10,12)),
0);
return t.getTimeInMillis();
Однако иногда я получаю отклонение на несколько миллисекунд.Например:
long t1 = timestampToLong("201110250830");
long t2 = timestampToLong("201110250831");
assertEquals(60*1000, t2 - t1);
иногда дает мне:
Got exception: java.lang.AssertionError: expected:<60000> but was:<60001>
Я проверил документ, но не смог найти ничего подходящего.Любая идея?(похоже, хороший день, я собираюсь кое-что узнать здесь!: -)
Спасибо!