Интернационализация DateTime

#java #datetime #date #internationalization

#java #datetime #Дата #интернационализация

Вопрос:

Я использую joda DateTime для всех манипуляций с датой и временем в моем веб-проекте. Существует некоторое планирование и конкретная реализация задачи. Я пытаюсь сделать этот проект интернационализированным с помощью Locale . Теперь дело в том, что я увидел, что DateTime печатается как 2011-01-01T00:00:00.000 05:30 , с помощью new DateTime() которого создается объект DateTime (это часть вышеупомянутого планирования, я создал расписание, в котором экземпляр date создается и сохраняется таким образом). Я тестирую с той же машины, на которой разрабатываю программное обеспечение. Итак, если пользователь из Франции, Италии или США заходит на этот веб-сайт и использует его, а также создает расписание, то каким будет представление этой даты для них?

Будет ли это зависящим от сервера или от клиента (под специфичным для клиента я подразумеваю, что если я установлю языковой стандарт на сервере, выбранный пользователем, это не связано с javascript)?

Должен ли я явно использовать Locale для создания этого экземпляра date? Я могу легко получить этот язык. Тогда как я могу использовать Locale для создания объекта DateTime или create Date или Calendar а затем создавать DateTime с помощью этого Date ?

Спасибо и с уважением.

Ответ №1:

DateFormat — это то, что вы ищете. Вы можете локализовать дату в любом языковом стандарте.

Лучше всего использовать языковой стандарт браузера.

Комментарии:

1. Спасибо @Costis Aivalis. Фактически печать 2011-01-01T00:00:00.000 05:30 означает, что для нее установлено значение DateTimeZone IST. DateTime#toString() Метод возвращает экземпляр DateTime в yyyy-MM-dd'T'HH:mm:ss.SSSZZ формате. Где ‘Z’ представляет часовой пояс. Мой вопрос означает, что если сервер расположен в Индии, то для пользователя с часовым поясом «America / Los_Angeles» будет установлен часовой пояс IST, не так ли? Теперь я нашел решение: явно установив часовой пояс с помощью new DateTime(DateTimeZone.UTC) .