自动人类可读的时间间隔

9
我想用人类可读形式表达一些时间间隔。我正在寻找一个库,它能自动选择正确的单位大小。这些间隔将从毫秒到周为范围。像这样:
  • 0.2秒
  • 2:00
  • 4天
  • ...
我知道我可以手动检查参数的大小,然后转换它,但在重新发明轮子之前,我想问是否有(标准)库来实现这一目的。
  • TimeUnit 可以进行转换,但没有关于参数大小的知识
  • Joda-TimeDuration 正是我所需要的,但我没有发现太多关于表示的信息(除了ReadableDuration的ISO8601格式)
编辑: 我的输入是纳秒,输出如上所述。

你能给出一些你想要的样本输入和输出吗? - user517491
@djaqeel 我编辑了问题:输入为纳秒(或毫秒),输出尽可能人类可读。 - Matteo
1个回答

28

请查看PrettyTime

PrettyTime是一款开源的时间格式化库。它可以完全定制,可以创建类似于Digg、Twitter和Facebook上看到的人类可读的相对时间戳。它很简单,“立即”开始使用,支持超过18种语言!

例如

    PrettyTime p = new PrettyTime();
    System.out.println(p.format(new Date()));
    //prints: “right now”

    PrettyTime t = new PrettyTime(new Date(3155692597470L * 3L));
    t.format(new Date(0));
    //3 centuries ago 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接