Изменить формат даты и времени Android

Я получаю дату и время как 2017-01-15T21:30:05Z из API. Я хочу изменить дату на JAN 15,2017 и время на формат 9:30 pm.

Вот мой код без форматирования.

News currentNews = newsList.get(position);
String time=currentNews.getTime();
String[] parts=time.split("T");
parts[1]=parts[1].replace("Z","");

dateView.setText(parts[0]);
timeView.setText(parts[1]); 

person priyanshu goyal    schedule 21.02.2017    source источник
comment
Таких проблем было много. Вы можете СМОТРЕТЬ здесь ссылка   -  person ku4irka    schedule 21.02.2017


Ответы (2)


Вам нужно использовать объекты SimpleDateFormat и Date. Вам нужно будет создать 1 SimpleDateFormat с исходным стилем и 1 с желаемым стилем. Затем создайте объект Date и проанализируйте полученную от API дату на этот объект. Затем распечатайте его, используя второй SimpleDateFormat.

Попробуйте этот код:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
SimpleDateFormat sdf2 = new SimpleDateFormat("MMM dd, yyyy h:mm a");

try {
    Date d = sdf.parse("2017-01-15T21:30:05Z");
    System.out.println(d);                     // date in INITIAL format
    System.out.println(sdf2.format(d));        // date in DESIRED format
} catch (ParseException e) {
    e.printStackTrace();
}
person Marat    schedule 21.02.2017
comment
Большое спасибо, код работает отлично. - person priyanshu goyal; 21.02.2017
comment
@priyanshugoyal Рад это слышать! Подумайте о том, чтобы принять и проголосовать за мой ответ :) Удачного кодирования! - person Marat; 21.02.2017

Вы можете использовать класс SimpleDateFormat для анализа вашей строки. Затем вы можете получить от него дату.

Вот пример использования: Java SimpleDateFormat(yyyy-MM-dd' T'HH:mm:ss'Z') указывает часовой пояс как IST

Подробнее см. в официальной документации: https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

person user3246654    schedule 21.02.2017