Простой ответ - SimpleDateFormatter
Когда вы утверждаете, что тип, возвращаемый getStartDate
, должен оставаться Date
. В этом случае самый простой способ сделать это - использовать класс SimpleDateFormat
:
. Вы можете передать дату в SimpleDateFormatter
:
SimpleDateFormat iso_8601_formatter = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(iso_8601_formatter.format(getStartDate());
Более подробную информацию можно найти по адресу в этом сообщении в блоге.
Ответ по передовому опыту - используйте java.time
Как отметил Оле В.В., если станет возможным рефакторинг кода, было бы лучше объединить кодовую базу вокруг java.time
вместо того, чтобы смешивать этот API с java.util.Date
. Это можно сделать с помощью DateTimeFormatter
DateTimeFormatter iso_8601_formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate start = StartDate.atStartOfDay();
System.out.println(start.format(iso_8601_formatter));
Обратите внимание, что DateTimeFormatter предоставляет константу DateTimeFormatter.ISO_LOCAL_DATE
для печати значений в формате ISO-8601.
Подробнее об улучшениях, сделанных в новом API, можно найти в этой статье.