1

我有这种格式的 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();
    }

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

4

2 回答 2

4

你得到的解析异常是因为T你的 date( 2013-03-04T14:37:15) 中的额外内容。

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

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

new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
于 2013-03-19T16:41:57.227 回答
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())'
于 2013-03-19T16:45:48.423 回答