2013-08-28 5 views
1

Я делаю вызов API на сервере при входе в систему. API вызов возвращает данные в формате JSON с полем:Android получить только время от iso-8601

time_logged_in - время в изо-8601 формате, например, 2013-08-19T14: 29Z

Но в моем TextView Я хотел бы только, чтобы показать время, когда пользователь вошел в систему, например, 14:29.

Может ли кто-нибудь помочь и рассказать мне, как я мог это сделать?

ответ

1

Используйте SimpleDateFormat для преобразования из одного формата в другой. Затем вы можете добавить соответствующую часть из этого. Один из способов:

String server_format = "2013-08-19T14:29Z"; //server comes format ? 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mmZ"); 
try { 

    Date date = sdf.parse(server_format); 
    System.out.println(date); 
    String your_format = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(date); 
    String [] splitted = your_format.split(" "); 
    System.out.println(splitted[1]); //The second part of the splitted string, i.e time 
    // Now you can set the TextView here 


} catch (ParseException e) { 
    System.out.println(e.toString()); //date format error 
} 

P.S Я еще не тестировал этот код. Надеюсь, вы получите концепцию. См. How to format a date android? для получения дополнительной информации.

Другим способом является использование .split() с использованием T в качестве разделителя. Затем просто удалите часть Z, используя ответы, указанные на Remove all occurrences of char from string, и покажите результат в TextView.

Третий способ может быть заменен T и Z с " " (пробел) с использованием .replace функции. Затем, используя .split(), вы можете просто разбить строку, используя " " в качестве разделителя. Второй элемент возвращаемого массива даст вам время.

+0

Я получаю сообщение об ошибке: java.text.ParseException: Unparseable date: "2013-08-29T05: 23Z" –

+0

Попробуйте несколько вещей: '1)' Удалите одиночную цитату вокруг 'T'. iDe 'SimpleDateFormat sdf = новый SimpleDateFormat (" yyyy-MM-ddTHH: mmZ ");' now. Если это не сработает, попробуйте второй и третий способ сделать это. –

+0

Теперь я получил исключение во время выполнения. Попробуем два других способа. –

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