Сегодня вторник, 9 февраля 2010 г., и когда я печатаю дату, я получаю неправильную дату:
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date today = formatter.parse(String.format("%04d-%02d-%02d",
Calendar.getInstance().get(Calendar.YEAR),
Calendar.getInstance().get(Calendar.MONTH),
Calendar.getInstance().get(Calendar.DAY_OF_MONTH)));
System.out.println("Today is " + today.toString());
Результат строки печати: «Сегодня суббота, 09 января, 00:00:00 CST 2010».
Это определенно не суббота, 09 января, это вторник, 09 февраля. Я предполагаю, что делаю что-то не так, так что может ли кто-нибудь сообщить мне, что здесь не так? Нужно ли вручную устанавливать день недели?
Обновление Примечание: сегодня я не хочу инициализировать new Date()
, потому что хочу, чтобы часы, минуты, секунды и миллисекунды были инициализированы 0
. Это необходимо, чтобы я мог сравнить введенную пользователем дату с сегодняшним днем: если пользователь вводит сегодняшнюю дату, а я использую модуль форматирования для создания объекта Date, то если я инициализирую сегодня с помощью new Date()
и сравниваю две даты, сегодня будет после даты, выбранной пользователем (что неверно). Таким образом, мне нужно инициализировать сегодня в начале дня без часов/мин/сек/мс.