【发布时间】:2011-01-11 21:16:32
【问题描述】:
我需要计算从一个特定日期到现在所经过的时间,并以与 StackOverflow 问题相同的格式显示,即:
15s ago
2min ago
2hours ago
2days ago
25th Dec 08
您知道如何使用 Java Joda-Time 库 来实现它吗?是否有已经实现它的辅助方法,还是我应该自己编写算法?
【问题讨论】:
-
“2008 年 12 月 25 日”不是“从一个特定日期到现在所经过的时间”(你用粗体写了;)
-
我知道。但是 SO 正在显示这样的提问时间。如果时间段足够长,则会显示确切的日期。
-
我对 StackOverflow 处理日期的方式很不满意。一开始你会得到非常精确的数字(37 秒前),但很快就会变得非常模糊(2 天前)。只有在时间以绝对格式显示后,您才能再次看到精确的(至少到分钟)日期和时间。我相信这种相对信息只是在绝对信息之外才有用,而不能代替它。
-
您可以在工具提示中获取确切的日期时间。只需将日期时间悬停一会儿:)
-
Joda-Time 不适用于在需要额外功能时打印相对(经过)时间。接受的答案是可以的,但不可本地化(仅适用于英语)。如果您需要本地化支持,那么有更好的 3rd-party 库。 ocpsoft/PrettyTime 是一个更好的选择,但仅适用于旧类
java.util.Date。但是,我的库 Time4J 是恕我直言,用于打印相对时间(前格式)或时间格式(如“3 个月,4 天”)的最佳库。它实际上也可以本地化为 72 种语言。
标签: java algorithm datetime grails jodatime