Сегодня вторник, 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»
Скорее всего, это не суббота, 9 января, это вторник, 9 февраля. Я предполагаю, что делаю что-то не так, поэтому кто-нибудь может дать мне знать, что здесь не так? Нужно ли вручную устанавливать день недели?
Обновление
Примечание: я не хочу инициализировать сегодня с new Date()
, потому что я хочу, чтобы часы, минуты, секунды и миллисекунды были инициализированы на 0
. Это необходимо, чтобы я мог сравнить дату ввода пользователя с сегодняшним днем: если пользователь вводит сегодняшнюю дату, и я использую средство форматирования для создания объекта Date, тогда, если я инициализирую сегодня с помощью new Date()
и сравниваю две даты, сегодня будет после выбранная пользователем дата (что неверно). Таким образом, мне нужно инициализировать сегодня в начале дня без часов / мин / сек / мс.