2015-03-04 2 views
1

Прошу прощения за вопрос 1941521315 # по дате ISO 8601, но я не уверен, как действовать.Как я могу обрабатывать даты/времена ISO 8601 и отформатировать их в локали пользователя?

я получил следующий формат

SimpleDateFormat input = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss:ssZ"); 

который я затем преобразовать в

SimpleDateFormat output = new SimpleDateFormat("yyyy/MM/dd HH:mm"); 

Это работает, но я хочу представить это, используя формат даты и времени пользователя в настоящее время используется в настройках устройства. Раньше я использовал это, чтобы конвертировать форматы даты и времени в локаль пользователя, но он всегда был в миллисекундах.

userTimeFormat = android.text.format.DateFormat.getTimeFormat(context.getApplicationContext()); 
userDateFormat = android.text.format.DateFormat.getDateFormat(context.getApplicationContext()); 

Который я вернусь как строка.

userTimeFormat.format(new Date(dateAndTimeInMillis)) + ", " + userDateFormat.format(new Date(dateAndTimeInMillis)); 

Таким образом, я не уверен, как обрабатывать этот формат, а также учитывать различные часовые пояса. Я знаю, что этот формат ISO 8601 имеет дело с UTC, но интересно, как я могу реализовать его вместе с текущим форматом даты и времени пользователя.

Я использую Android API 11.

ответ

0

Для форматирования даты для локального отображения вы должны использовать либо конструктор no-arg SimpleDateFormat, который будет использовать Locale по умолчанию, либо конструктор, который принимает локаль, если вы хотите указать Locale для вывода.

SimpleDateFormat позаботится о преобразовании часового пояса для вас.

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