2013-11-08 2 views
-1

Я использую виджет JComboCalendar, чтобы пользователь мог выбрать дату. JComboCalendar имеет метод getDate(), который возвращает объект Date.Формирование вывода Date.toString() в JAVA

According to Oracle docs, Date.toString должна возвращать строку в формате гггг-мм-дд, но вместо этого я получаю строки типа:

Fri Nov 08 13:08:38 CET 2013 

Как я могу получить ожидаемый результат? Бонус за то, как его форматировать, как dd-mm-yyyy, так как я просто нашел, как читать строку в заданном формате, а не как форматировать вывод.

+7

'Java .sql.Date' - это не то же самое, что 'java.util. Date'. Вы в основном смотрите на совершенно неправильный javadoc. – BalusC

+0

@BalusC согласился. вам нужно проверить свой импорт Roman !! – TheLittleNaruto

+0

Nice catch @BalusC! Мой импорт в порядке, я просто ошибся при поиске документации в Google :) –

ответ

3

Используйте следующие форматировать дату:

new SimpleDateFormat("dd-MM-yyyy").format(comboCalendar.getDate()) 

Как ваш другой вопрос, вы открыли неправильную документацию. getDate() возвращает java.util.Date не java.sql.Date Правильная документация: http://docs.oracle.com/javase/7/docs/api/java/util/Date.html#toString%28%29

0

SimpleDateFormat поможет вам.

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); 
String str = sdf.format(yourDateInstance); 
+2

Почему это было так низко? – duffymo

+1

Я не ограничил это, но это больше подходит в качестве комментария, а не как информативный ответ. ОБНОВЛЕНИЕ: Также загадка, почему люди поддерживают это! Автор даже не добавил ссылку на SimpleDateFormat ... – hovanessyan

+0

Да, я думаю, что является контекстом для downvote. :( Я вижу, вы ищете код. –

-1

Попробуйте это:

SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd"); 
String formattedDate = formatDate.format(new Date()); // Sample date to be formatted 
System.out.println(formattedDate); // Watch the output 
+0

это напечатает 2013-41-08 – SpringLearner

+0

Потому что 'мм' - минуты, а не месяцы. Используйте' yyyy-MM -dd'. – Jesper

+0

Спасибо за указание опечатки. Исправлено то же самое. –

0

попробовать этот

SimpleDateFormat d1 = new SimpleDateFormat("yyyy-MM-dd"); 
    Date d=new Date(); 
    System.out.println(d1.format(d)); 

выход 2013-11-08