我有这种格式的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();
}
但是上面的函数会抛出一个异常,说明日期不可解析..
答案 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())'