Android只从iso-8601获得时间

时间:2013-08-28 16:13:23

标签: java android

登录用户时,我正在对服务器进行API调用。 API调用返回带有字段的JSON格式数据:

time_logged_in - iso-8601格式的时间,例如,2013-08-19T14:29Z

但在我的TextView中,我只希望显示用户登录的时间,例如14:29。

任何人都可以帮忙告诉我该怎么做?

1 个答案:

答案 0 :(得分: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。然后,只需使用Remove all occurrences of char from string上给出的答案删除Z部分,并将结果显示在TextView中。

第三种方法是使用T函数将Z" "替换为.replace(空格)。然后使用.split(),您可以使用" "作为分隔符来拆分字符串。返回的数组的第二个元素将给你时间。