Строка даты с указанием месяца на шведском языке

У меня есть строковое значение, например 2014-maj-06 11:44:39, которое я хотел бы преобразовать в дату Java, где месяц хранится в шведском формате.

Интересно, как должен выглядеть шаблон для моего простого формата даты?

Не могли бы вы показать, что вы уже пробовали, и результат? Это сделало бы этот вопрос лучше.

Jon Skeet 08.04.2019 15:06

Я смотрел примеры здесь stackabuse.com/how-to-convert-a-string-to-date-in-java, где указано, что месяц (M) может быть (май, май, 05), но это на английском языке.

Patrick Kwinten 08.04.2019 15:08

Simpledateformat может принимать Регион, насколько я помню, я никогда не использовал его, поэтому я не уверен, что это то, что нужно.

Patrick 08.04.2019 15:09

К вашему сведению, проблемные классы даты и времени, такие как java.util.Date, java.util.Calendar и java.text.SimpleDateFormat, теперь являются устаревшими, вытесненными классами Java.время. Большая часть функциональности Java.время обратно перенесена на Java 6 и Java 7 в проекте ThreeTen-Backport. Дальнейшая адаптация для более ранних версий Android (<26) в тридесятьABP. См. Как использовать ThreeTenABP….

Basil Bourque 09.04.2019 02:43
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
4
780
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы можете ввести свой DateTimeFormatter с желаемым Locale:

DateTimeFormatter.ofPattern("yyyy-LLL-dd hh:mm:ss", new Locale("sv"))
.parse("2014-maj-06 11:44:39");

... даст вам (мои отступы):

{SecondOfMinute=39, HourOfAmPm=11, MinuteOfHour=44, NanoOfSecond=0, 
    MilliOfSecond=0, MicroOfSecond=0},
    ISO resolved to 2014-05-06

API здесь.

Объект Locale будет работать в сочетании с форматом LLL, который соответствует сокращенной текстовой форме месяца, также известной как по-шведски maj для мая.

Примечание

Для Java < 8 вы можете использовать тот же формат, что и Locale, и вместо этого инициализировать новый SimpleDateFormat.

Мне все еще <8, так что не могли бы вы прояснить свое предложение для Java 6?

Patrick Kwinten 08.04.2019 15:37

Формат SimpleDateFormat = new SimpleDateFormat("yyyy-LLL-dd hh:mm:ss", new Locale("sv")); Дата thedate = format.parse("2014-maj-06 11:44:39"); или?

Patrick Kwinten 08.04.2019 15:41

@PatrickKwinten да. Представление StringDate будет отличаться, поскольку это не те же API, что и в Java 8, но свойства такие.

Mena 08.04.2019 16:01

@PatrickKwinten Для Java 6 и 7 большая часть функций Java.время была перенесена обратно в проект ThreeTen-Backport. Добавление этой библиотеки в ваш проект того стоит; сильно лучше, чем использование ужасных устаревших классов даты и времени.

Basil Bourque 09.04.2019 02:41

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