当前位置: 首页 > 工具软件 > PrettyTime > 使用案例 >

使用 PrettyTime 来格式化 Java 的日期时间

商飞航
2023-12-01

当你希望能够将时间格式成易于用户阅读的格式,如"12分钟前"、"2天前"、"至今3个月"等,那么你可以用 PrettyTime 来处理。一两行代码搞定,而不是像之前 OSC 傻乎乎的写了几十行代码,还经常出问题。

PrettyTime 支持多语言,可以在构造 PrettyTime 的时候传递一个 Locale 参数即可:

?
1
2
3
4
5
6
7
8
9
10
11
import java.util.Date;
import com.ocpsoft.pretty.time.PrettyTime;
   
public class BasicJavaApp
{
     public static void main(String[] args)
     {
         PrettyTime p = new PrettyTime(Locale.CHINESE);
         System.out.println(p.format( new Date()));
     }
}

默认 PrettyTime 的显示就很不错,但有一些可能看起来不太爽,例如 5 分钟之前的会统一显示为“片刻之前”。你可以通过 p.removeUnit(JustNow.class) 来干掉这样的显示。但是会引来一个问题,例如显示 xxx毫秒前,这样的显示我觉得没什么意义,那么你可以继续 p.remoteUnit(Millisecond.class) 来处理。

OSC 现在使用 PrettyTime 的简单设置如下:

?
1
2
3
4
5
6
private final static PrettyTime PRETTY_TIME = new PrettyTime(Locale.CHINESE);
static {
   PRETTY_TIME.removeUnit(JustNow. class );
   PRETTY_TIME.removeUnit(Second. class );
   PRETTY_TIME.removeUnit(Millisecond. class );
}

另外我觉得超过一定时间再用这种方式来显示就不太直观,大家讨论下怎样的时间显示才是最友好的呢?


 类似资料: