2014-02-06 6 views
2

Я пытаюсь отформатировать дату со временем, включая миллисекунды в Java, относящиеся к текущему языку, так, например, в US/English Locale это должно выглядеть так: 10/7/13 05:24:12.121 PM. А в Германии/German Locale это должно выглядеть так: 07.10.13 17:24:12.121. Я знаю класс DateFormat в Java, а также класс SimpleDateFormat. Используя DateFormat, я могу получить объект DateFormat, который позволяет мне форматировать время, определенное для определенного локали, но даже с DateFormat.FULL в качестве форматирующего параметра для метода format он отображает только время до второго. Используя SimpleDateFormat, я могу определить свой собственный формат даты и времени, включая миллисекунды, но тогда я должен сам позаботиться о Locales, что было бы беспорядком.Локальное форматирование времени и даты, включая миллисекунды

Я также посмотрел API-интерфейс Joda Time, но я не смог найти решение там.

Итак, вопрос в том, как я могу форматировать дату со временем, включая миллисекунды в Java, для определенной локали?

ответ

1

Использование SimpleDateFormat, я могу определить свой собственный формат даты и времени, включая миллисекунды, но тогда я должен сам позаботиться о Locales, что было бы беспорядком.

Почему беспорядок? Просто определите, например. HashMap из Locale в SimpleDateFormat для тех нескольких локалей, которые вы хотите поддержать. Напишите пользовательские SimpleDateFormats, как вам нравится. Затем просто используйте правильный, основанный на конкретном локали, переданном.

+0

Ну, я действительно надеялся на общее решение, где мне не нужно было бы реализовывать его для каждого Locale, который должен поддерживаться специально. :) Как бы там не было ярлыка вокруг него, спасибо за ваше предложенное решение. Это определенно делает работу. – Haf

Смежные вопросы