我的服务器。返回时间:
"2016-01-24T16:00:00.000Z"
我想要
1:转换为字符串。
2:从服务器加载时,我希望它显示“time ago”。
请。帮我!
最佳答案
我主要看到三种方式:
a)使用SimpleDateFormat
和DateUtils的内置选项
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
try {
long time = sdf.parse("2016-01-24T16:00:00.000Z").getTime();
long now = System.currentTimeMillis();
CharSequence ago =
DateUtils.getRelativeTimeSpanString(time, now, DateUtils.MINUTE_IN_MILLIS);
} catch (ParseException e) {
e.printStackTrace();
}
b)外部库ocpsoft/PrettyTime(基于
java.util.Date
)在这里,您还必须使用
SimpleDateFormat
来生成time
-result作为“2016-01-24T16:00:00.000Z”的解释。在您的应用程序中的lib下面导入
implementation 'org.ocpsoft.prettytime:prettytime:4.0.1.Final'
PrettyTime prettyTime = new PrettyTime(Locale.getDefault());
String ago = prettyTime.format(new Date(time));
c)使用我的库Time4A(重量级,但具有最佳的i18n支持)
Moment moment = Iso8601Format.EXTENDED_DATE_TIME_OFFSET.parse("2016-01-24T16:00:00.000Z");
String ago = PrettyTime.of(Locale.getDefault()).printRelativeInStdTimezone(moment);