将UTC时间格式转换为本地时间

时间:2013-03-19 16:36:58

标签: android utc android-date

我有这种格式的UTC时间2013-03-04T14:37:15如何将其转换为本地时间,然后转换为one minute ago格式。

我首先尝试将时间转换为本地格式:

private String getDate(String date) {
        Date fDate = null;
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
        try {
            fDate = simpleDateFormat.parse(date);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
return fDate.toString();
    }

但是上面的函数会抛出一个异常,说明日期不可解析..

2 个答案:

答案 0 :(得分:4)

您获得的解析异常是因为您的日期(T)中的额外2013-03-04T14:37:15

您可以删除额外的“T”并使用当前日期格式解析日期

或者,如果您需要使用T解析它,请更改格式以解析文字T

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

答案 1 :(得分:3)

检查DateUtils.getRelativeTimeSpanString()(DateUtils中具有相同名称的一种方法)。它将类似于:

Date fDate = null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
fDate = simpleDateFormat.parse(date);
return DateUtils.getRelativeTimeSpanString(context, System.currentTimeMillis()-fDate.getTime())'