У меня есть строковое значение, например 2014-maj-06 11:44:39
, которое я хотел бы преобразовать в дату Java, где месяц хранится в шведском формате.
Интересно, как должен выглядеть шаблон для моего простого формата даты?
Я смотрел примеры здесь stackabuse.com/how-to-convert-a-string-to-date-in-java, где указано, что месяц (M) может быть (май, май, 05), но это на английском языке.
Simpledateformat может принимать Регион, насколько я помню, я никогда не использовал его, поэтому я не уверен, что это то, что нужно.
К вашему сведению, проблемные классы даты и времени, такие как java.util.Date
, java.util.Calendar
и java.text.SimpleDateFormat
, теперь являются устаревшими, вытесненными классами Java.время. Большая часть функциональности Java.время обратно перенесена на Java 6 и Java 7 в проекте ThreeTen-Backport. Дальнейшая адаптация для более ранних версий Android (<26) в тридесятьABP. См. Как использовать ThreeTenABP….
Вы можете ввести свой 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?
Формат SimpleDateFormat = new SimpleDateFormat("yyyy-LLL-dd hh:mm:ss", new Locale("sv")); Дата thedate = format.parse("2014-maj-06 11:44:39"); или?
@PatrickKwinten да. Представление String
Date
будет отличаться, поскольку это не те же API, что и в Java 8, но свойства такие.
Не могли бы вы показать, что вы уже пробовали, и результат? Это сделало бы этот вопрос лучше.