Java, получить текущую дату в формате 2020-12-23 тип Date
String sDate1="2020-12-23";
Date date1=new SimpleDateFormat("yyyy-MM-dd").parse(sDate1);
Возвращает - Wed Dec 23 15:02:32 IST 2020, при необходимом - 2020-12-23. Спасибо.
Всем спасибо. Вопрос закрыт.
Еще раз благодарю (просто менее 30 символов не принимает :) ).
Ответы (2 шт):
java.util.Date -- это довольно сложно устроенный объект, который содержит внутри себя данные о дате и методы работы с ними. Вы, видимо, выполнили какой-то такой код:
String sDate1="2020-12-23";
Date date1=new SimpleDateFormat("yyyy-MM-dd").parse(sDate1);
System.out.println(date1);
Увидели в консоли Wed Dec 23 15:02:32 IST 2020 и подумали, что в date1 храниться какая-то неправильная строка.
Но в date1 не хранится строка. Там хранится дата (т.е. довольно сложно устроенный объект и т.д.).
Вы очень ловко превратили строку в дату -- это хорошо. А теперь посмотрите, как вам превращать дату в строку нужного вида. Например, можно так:
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String format = formatter.format(date1);
System.out.println(format);
Используя всё тот же SimpleDateFormat, кстати.
Просто когда она у вас строка -- она всегда одинаковая строка. А когда она у вас дата -- вы можете с помощью форматтера выбирать как именно должна выглядеть строка с датой.
У вас всё задом наперёд в коде.
Метод parse() в SimpleDateFormat преобразует строку в дату. Естественно, если вы выведите в консоль полученный экземпляр Date, вывод будет Wed Dec 23 15:02:32 IST 2020, потому что выведется именно полученный Date.
А вам, наверное, надо обратное действие. Date превратить в строку. Для этого у SimpleDateFormat есть метод format(), в который подаётся экземпляр класса Date, а выходит красиво отформатированная строка.
Ещё раз:
parse()- принимает строку, возвращает Date.format()- принимает Date, возвращает строку.