现在我正在使用Android Time Ago,我几天前就已经开始了,但几周前没有这样做
我试过这里:
CharSequence CS = DateUtils.getRelativeTimeSpanString(DateUtils.MINUTE_IN_MILLIS, now.getTime(),
DateUtils.WEEK_IN_MILLIS, 0);
正是我所需要的是,如果它不到一周应该显示这些日子重生。
如果一周以上显示一个月或一个月应显示一个月前或两个月前,就像继续
我怎么能得到这个可以任何人帮助我。
答案 0 :(得分:0)
你不能通过DateUtils
的现有方法来做到这一点。您可以使用此实现,但请记住,它仅适用于过去(周,月,年)。如果你想处理未来,那么你需要关心这个用例。
public static final long AVERAGE_MONTH_IN_MILLIS = DateUtils.DAY_IN_MILLIS * 30;
private String getRelationTime(long time) {
final long now = new Date().getTime();
final long delta = now - time;
long resolution;
if (delta <= DateUtils.MINUTE_IN_MILLIS) {
resolution = DateUtils.SECOND_IN_MILLIS;
} else if (delta <= DateUtils.HOUR_IN_MILLIS) {
resolution = DateUtils.MINUTE_IN_MILLIS;
} else if (delta <= DateUtils.DAY_IN_MILLIS) {
resolution = DateUtils.HOUR_IN_MILLIS;
} else if (delta <= DateUtils.WEEK_IN_MILLIS) {
resolution = DateUtils.DAY_IN_MILLIS;
} else if (delta <= AVERAGE_MONTH_IN_MILLIS) {
return Integer.toString((int) (delta / DateUtils.WEEK_IN_MILLIS)) + " weeks(s) ago";
} else if (delta <= DateUtils.YEAR_IN_MILLIS) {
return Integer.toString((int) (delta / AVERAGE_MONTH_IN_MILLIS)) + " month(s) ago";
} else {
return Integer.toString((int) (delta / DateUtils.YEAR_IN_MILLIS)) + " year(s) ago";
}
return DateUtils.getRelativeTimeSpanString(time, now, resolution).toString();
}
答案 1 :(得分:0)
您可以使用我的库(Timeago)来获取Java / Android的确切Timeago,关于显示过去和将来的日期时间值,您可以检查此示例的当前时间:
long timeInMillis = System.currentTimeMillis();
String text = TimeAgo.using(timeInMillis);
对于将来的日期,您可以使用java.util.Calendar类,并设置大于当前日期的日期值,然后将时间作为长型输入,作为该类的输入。