PrettyTime Java时间库

经常我们需要显示“3分钟前”或"7天后",计算这些时间差耗时耗力,特别是“分钟”“天”这些汉字要硬编码进入Java代码,能否有根据当地时间格式,并且提供时间差的自动计算呢?

如计算两个时间差,通常代码如下:


long diffs = (dd.getTime() - myd.getTime()) / 1000;
if (diffs > 60) {
long diffMinutes = diffs / 60;
System.out.print(diffMinutes);
} else
System.out.print(diffs);

可是如果相差时间差过分钟,或超过天,或超过月呢?要写很长判断,关键是后面还要跟上本地时间单位“分钟”,破坏国际化风格,如果变成英文系统,代码中分钟要改为Minutes等的

而用PrettyTime简单如下:
PrettyTime t = new PrettyTime(new Date(0));
t.setLocale(new Locale("ZH_CN"));
System.out.println("" + t.format(new Date(deadDate)));


PrettyTime 就是这个功能,其中已经实现中文版输出。
PrettyTime - Elapsed Timestamp Formatting and Conversion for Java (Social, JSF2) | OcpSoft
[该贴被banq于2011-03-06 15:36修改过]