Разница между датой в миллисекундах и ее календарным представлениемJAVA

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

Сообщение Anonymous »

У меня есть две функции, которые преобразуют строку даты в дату в миллисекундах:

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

public static long convertYYYYMMDDtoLong(String date) throws ParseException {
SimpleDateFormat f = new SimpleDateFormat("yyyy-mm-dd");
Date d = f.parse(date);
long milliseconds = d.getTime();
return milliseconds;
}
Если я запущу эту функцию, я получу следующий результат:

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

long timeStamp = convertYYYYMMDDtoLong("2014-02-17");
System.out.println(timeStamp);
Печатает:

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

1389909720000
Теперь, если я запущу следующий код:

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

Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(timeStamp);
System.out.println(cal.getTime());
Он распечатывает:

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

Fri Jan 17 00:02:00 IST 2014
Почему моя дата сдвинута на один месяц? Что не так?

P.S: Моя проблема в том, что мне нужно сопоставить дату, представленную как длинная, с другой третьей party API, который принимает только формат календаря.

Подробнее здесь: https://stackoverflow.com/questions/208 ... esentation

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