Преобразование строки даты в другую строку с другим форматом

Я новичок в Java, и для варианта использования я хотел бы знать, как преобразовать строку "2023-02-01" в "02012023" У меня были проблемы с пониманием правильного использования SimpleDateFormat для этого случая.

Пока ничего не пробовал

«У меня были проблемы с пониманием правильного использования SimpleDateFormat для этого случая» - вам вообще нужно использовать этот класс? Я настоятельно рекомендую использовать java.time, например. java.time.LocalDate для представления даты. По сути, вы должны преобразовать существующую строку в LocalDate, а затем отформатировать ее в формате. DateTimeFormatter — подходящий класс для этого.

Jon Skeet 03.02.2023 15:57

Самый правильный способ использования SimpleDateFormat — не использовать его вообще. Серьезно. Этот класс настолько хлопотный и так давно устарел, что вы никогда не захотите его использовать. Смотрите ответ.

Ole V.V. 05.02.2023 16:55

Мне немного интересно, какой формат вы хотите, 02012023. Я не думаю, что кто-то захочет читать дату в таком формате. Для чего ты это хочешь? Разве ваши пользователи не хотели бы чего-то более читабельного и однозначного?

Ole V.V. 05.02.2023 17:04

@ОлеВ.В. вот как дата хранится на бэкенде, пользователи видят в другом формате

Markus 10.02.2023 12:43

Это объясняет или наполовину, спасибо. Это также нерекомендуемый формат для хранения. Если ваше хранилище напрямую не поддерживает тип даты, я рекомендую хранить в виде строки в формате ISO 8601, например — да, формат, который у вас уже есть! 2023-02-01.

Ole V.V. 10.02.2023 13:05
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
68
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

SimpleDateFormat теперь унаследована, попробуйте вместо этого использовать современную библиотеку java.time:

String newStringDate = LocalDate.parse("2023-02-01")
        .format(DateTimeFormatter.ofPattern("MMdduuuu"));

Другие вопросы по теме