Разница во времени в миллисекундах с календарем слишком великаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Разница во времени в миллисекундах с календарем слишком велика

Сообщение Anonymous »

Я пытаюсь сравнить два значения миллисекунд в Java. Один из календаря и один из System.currentTimeMillis(). Однако кажется, что значение из календаря всегда намного больше, чем значение из System.currentTimeMillis() в нужное время.

Чтобы построить календарь , я анализирую строку даты в формате дд/ММ/гггг ЧЧ:мм и помещаю ее составные части в календарь (для краткости try-catch опущен).

Код: Выделить всё

Calendar obCal = null;

//Exception here shows invalid format
DateFormat DF = new SimpleDateFormat("dd/MM/yyyy HH:mm");
DF.parse(Date);

//Example string: 29/11/2011 16:30
String[] parts = Date.split("/");

obCal = Calendar.getInstance();
int Y = Integer.parseInt(parts[2].split(" ")[0]);
int m = Integer.parseInt(parts[1]);
int d = Integer.parseInt(parts[0]);
int H = Integer.parseInt(parts[2].split(" ")[1].split(":")[0]);
int M = Integer.parseInt(parts[2].split(" ")[1].split(":")[1]);

obCal.set(Calendar.YEAR, Y);
obCal.set(Calendar.MONTH, m);
obCal.set(Calendar.DAY_OF_MONTH, d);
obCal.set(Calendar.HOUR_OF_DAY, H);
obCal.set(Calendar.MINUTE, M);
obCal.set(Calendar.SECOND, 0);
obCal.set(Calendar.MILLISECOND, 0);
Проверка календаря после этого показывает, что он получает правильную дату и время. Затем я получаю значение миллисекунды с начала эпохи из obCal.getTimeInMillis() и сохраняю его как количество секунд в виде long

Код: Выделить всё

long stamp = obCal.getTimeInMillis() / 1000L;
Когда я достигаю времени, представленного строкой даты, и сравниваю временную метку из календаря с временной меткой System.currentTimeMillis(), я обнаруживаю, что первая гораздо больше. Разница между текущим временем и календарным временем (

Код: Выделить всё

curTime-calTime
), обычно находится где-то в районе -2 500 000

Что может быть причиной этого?
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/831 ... ar-too-big
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»