DateFormat в DateTimeFormatter

Я могу избавиться от этой проблемы, и сейчас я не нашел на нее ответа.

Можно ли преобразовать DateFormat в DateTimeFormatter?

DateFormat dateFormat =  new SimpleDateFormat("MM/dd/yy HH:mm:ss", Locale.getDefault);

Я хочу сделать что-то подобное:

DateTimeFormatter.ofPattern((String)dateFormatter);

Или

(DateTimeFormatter)dateFormatter;

Или есть способ получить строку, которая делает формат в DateFormat?

Я хочу сделать это, потому что я читал, что DateTimeFormater - это новый способ Java8 + работать с Date, и мне нужно сохранить старый, потому что он много раз используется в других местах проекта.

Спасибо!

Почему бы тебе просто не сделать DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MM/dd/yy HH:mm:ss")? Вы можете применить static final String format = "MM/dd/yy HH:mm:ss" и использовать его как старомодным, так и современным способом.

deHaar 18.12.2018 10:52

Ну, потому что он не статичен, поэтому мне нужно быть в случае предпочтений пользователя и т.д ... Первая строка кода - это пример, я не усложняю

Atra Wanderer 18.12.2018 10:54

Хорошо, тогда вы можете просто получить String из предпочтений пользователя ... Покажите нам, где находится исходный код в вашем коде, пожалуйста.

deHaar 18.12.2018 10:55

Близко связанный: Преобразование SimpleDateFormat в DateTimeFormatter.

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

Ответы 1

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

Вы можете использовать следующий код.

 DateTimeFormatter dateTimeFormatter = 
    DateTimeFormatter.ofPattern(((SimpleDateFormat) dateFormat).toPattern());

Обычно это срабатывает, но в некоторых случаях это не так. Не все буквы шаблона формата имеют одинаковое значение, в частности, количество букв может иметь значение в DateTimeFormatter, которое они не обязательно получали в DateFormat. Но это, наверное, лучшее, что мы можем сделать. См. Преобразование SimpleDateFormat в DateTimeFormatter.

Ole V.V. 18.12.2018 10:57

Большое спасибо, я не думал, что вы можете использовать DateFormat в качестве SimpleDateFormat без потери некоторых данных. И в этом случае меня не волнуют письма, поэтому проблемы, о которых сообщил Оле, не являются для меня проблемой.

Atra Wanderer 18.12.2018 11:02

Теоретически ваш DateFormat может не быть SimpleDateFormat, и если это не так, этот код выйдет из строя. Однако на практике я сомневаюсь, что это произойдет.

Ole V.V. 18.12.2018 11:04

Если языковой стандарт вашего DateFormat может отличаться от языкового стандарта по умолчанию, вы, вероятно, захотите также перенести его на свой DateTimeFormatter. Поскольку это довольно просто, я оставлю его в качестве упражнения для читателя.

Ole V.V. 18.12.2018 11:08

Это возможно, но его можно изменить в любое время в процессе работы, и он уже заменяет DateFormat, поэтому мне будет легче просто перенести изменение на DateTimeFormatter.

Atra Wanderer 18.12.2018 11:19

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