Я новичок в Java, и для варианта использования я хотел бы знать, как преобразовать строку "2023-02-01" в "02012023" У меня были проблемы с пониманием правильного использования SimpleDateFormat для этого случая.
Пока ничего не пробовал
Самый правильный способ использования SimpleDateFormat
— не использовать его вообще. Серьезно. Этот класс настолько хлопотный и так давно устарел, что вы никогда не захотите его использовать. Смотрите ответ.
Мне немного интересно, какой формат вы хотите, 02012023
. Я не думаю, что кто-то захочет читать дату в таком формате. Для чего ты это хочешь? Разве ваши пользователи не хотели бы чего-то более читабельного и однозначного?
@ОлеВ.В. вот как дата хранится на бэкенде, пользователи видят в другом формате
Это объясняет или наполовину, спасибо. Это также нерекомендуемый формат для хранения. Если ваше хранилище напрямую не поддерживает тип даты, я рекомендую хранить в виде строки в формате ISO 8601, например — да, формат, который у вас уже есть! 2023-02-01
.
SimpleDateFormat
теперь унаследована, попробуйте вместо этого использовать современную библиотеку java.time
:
String newStringDate = LocalDate.parse("2023-02-01")
.format(DateTimeFormatter.ofPattern("MMdduuuu"));
«У меня были проблемы с пониманием правильного использования SimpleDateFormat для этого случая» - вам вообще нужно использовать этот класс? Я настоятельно рекомендую использовать java.time, например.
java.time.LocalDate
для представления даты. По сути, вы должны преобразовать существующую строку вLocalDate
, а затем отформатировать ее в формате.DateTimeFormatter
— подходящий класс для этого.