如何在Java中计算“前段时间”?
2022-08-31 07:48:02
在Ruby on Rails中,有一个功能可以让你选择任何日期并打印出它的“很久以前”。
例如:
8 minutes ago
8 hours ago
8 days ago
8 months ago
8 years ago
有没有一种简单的方法可以在Java中做到这一点?
在Ruby on Rails中,有一个功能可以让你选择任何日期并打印出它的“很久以前”。
例如:
8 minutes ago
8 hours ago
8 days ago
8 months ago
8 years ago
有没有一种简单的方法可以在Java中做到这一点?
看看PrettyTime图书馆。
它使用起来非常简单:
import org.ocpsoft.prettytime.PrettyTime;
PrettyTime p = new PrettyTime();
System.out.println(p.format(new Date()));
// prints "moments ago"
您还可以传入国际化邮件的区域设置:
PrettyTime p = new PrettyTime(new Locale("fr"));
System.out.println(p.format(new Date()));
// prints "à l'instant"
如注释中所述,Android 在 android.text.format.DateUtils
类中内置了此功能。
你有没有考虑过TimeUnit枚举?对于这种事情来说,它可能非常有用
try {
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
Date past = format.parse("01/10/2010");
Date now = new Date();
System.out.println(TimeUnit.MILLISECONDS.toMillis(now.getTime() - past.getTime()) + " milliseconds ago");
System.out.println(TimeUnit.MILLISECONDS.toMinutes(now.getTime() - past.getTime()) + " minutes ago");
System.out.println(TimeUnit.MILLISECONDS.toHours(now.getTime() - past.getTime()) + " hours ago");
System.out.println(TimeUnit.MILLISECONDS.toDays(now.getTime() - past.getTime()) + " days ago");
}
catch (Exception j){
j.printStackTrace();
}