Java Calendar.getTimeInMillis - PullRequest
       0

Java Calendar.getTimeInMillis

0 голосов
/ 20 октября 2011

Я пытаюсь преобразовать строковые метки времени вида "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>

Я проверил документ, но не смог найти ничего подходящего.Любая идея?(похоже, хороший день, я собираюсь кое-что узнать здесь!: -)

Спасибо!

Ответы [ 2 ]

5 голосов
/ 20 октября 2011

Позвоните t.clear() перед звонком set().

Добро пожаловать в мир обработки времени и даты на Java.

4 голосов
/ 20 октября 2011

вы можете использовать DateFormat, как это.

SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmm");
Date ins = df.parse("201110250830");
long ts = ins.getTime();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...