Составление и сравнение даты в Java - PullRequest
0 голосов
/ 11 августа 2011

Я использовал это, чтобы создать дату и поместить ее в базу данных:

String currentDateTimeString = DateFormat.getDateInstance().format(new Date());

Я хочу построить дату в формате, аналогичном приведенному выше, и сравнить его с currentDateTimeString.

У меня есть 3 целых числа.Как мне это сделать (int год, int месяц, int день)?

ОБНОВЛЕНИЕ:

Calendar cal = Calendar.getInstance();

         cal.set(Calendar.MONTH, month);
         cal.set(Calendar.YEAR, year);
         cal.set(Calendar.DAY_OF_MONTH, day);

         Date result = cal.getTime();
         String currentDateTimeString2 = DateFormat.getDateInstance().format(result);

Я делаю здесь что-то не так ... и не равны: currentDateTimeString2 == currentDateTimeString //ложь

Ответы [ 2 ]

1 голос
/ 11 августа 2011

Даты представлены в миллисекундах.new Date возвращает текущую дату, а по дате это означает год, месяц, день, час, минуту, секунду, миллисекунду.

Сравнение можно выполнить с помощью Date.isAfter.

Неиспользуйте строки для сравнения дат.Не используйте == для сравнения объектов.

1 голос
/ 11 августа 2011
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DATE, date);
cal.set(Calendar.MONTH, month-1);//it starts from 0
cal.set(Calendar.YEAR, year);
cal.set(Calendar.HOUR, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
Date result = cal.getTime();

Я делаю здесь что-то не так ... и не равны: currentDateTimeString2 == currentDateTimeString // false

Строка является объектом, ее нельзя сравнить с ==использовать equals() метод

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...