当前位置: 首页 > 知识库问答 >
问题:

在Java如何计算“前一段时间”?

计寒
2023-03-14

在Ruby on Rails中,有一个特性允许您使用任何日期并打印出它是多么“久远”。

例如:

8 minutes ago
8 hours ago
8 days ago
8 months ago
8 years ago

在Java有什么简单的方法可以做到这一点吗?

共有2个答案

钦英发
2023-03-14

您考虑过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();
    }
欧阳智志
2023-03-14

看看美丽时光图书馆吧。

使用起来相当简单:

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类中内置了此功能。

 类似资料:
  • 问题内容: 我想从19:00:00中减去两个时间段,例如16:00:00。是否有任何Java函数?结果可以是毫秒,秒或分钟。 问题答案: 差异以毫秒为单位。

  • 问题内容: 如果用户输入为2255,而我的输出应为10分钟,那么我如何计算24小时内的时差。我的想法是将输入分为2个部分,2位数字和2位数字。前2位数字是小时,将其乘以60使其变为分钟。然后再加上第二个2位数字,然后计算出差异。我不想使用任何日期日历数据类型或API来解决它。谢谢 问题答案: 如何在不使用String chartAt的情况下获取前两位数字。 最高两位数:数字/ 100最低两位数:数

  • 我试图编写一个程序,计算文本中字母、单词和句子的数量。我可以假设一个字母是从a到z的任何小写字符或从a到z的任何大写字符,任何由空格分隔的字符序列都应算作一个单词,任何句点、感叹号或问号的出现都表示一个句子的结束。 到目前为止,我可以正确地计算字母和句子的数量,但是我错过了单词的数量: 例如是! 输出应为:3个字母1个单词1个句子 我得到的是:3个字母0个单词1个句子 更新:在printf函数前面

  • 我有一个小游戏,当用户按下暂停按钮时,我需要暂停计时器,然后恢复计时器,并在用户按下恢复按钮时继续增加秒数。我研究了很多,我尝试了不同的解决方案,但没有一个对我有效。你能帮我实现这个功能吗?下面是我的代码: 谢谢你读这篇文章。

  • 我想要一个代码,显示某人在语音频道中的完整时间,但我不知道如何启动和停止计数器。

  • 问题内容: 我有一个如下表: 现在我想更改此表以具有新字段,并且该字段必须具有默认值 如下所示: 怎么做? 谢谢你的帮助 问题答案: 根据MySQL 文档(添加了重点),您不能使用默认值的表达式: 10.1.4。数据类型默认值 数据类型规范中的DEFAULT value子句指示列的默认值。除一个例外, 默认值必须为常量; 它不能是函数或表达式 。例如,这意味着您不能将日期列的默认值设置为诸如NOW