【问题标题】:What's the best way of truncating Date to 15 minutes interval [duplicate]将日期截断为 15 分钟间隔的最佳方法是什么 [重复]
【发布时间】:2018-02-28 01:07:15
【问题描述】:

我正在编写一个函数,它将接收到的时间戳截断到最近的前 15 分钟间隔。 IE。 01:16:58 -> 01:15:00、01:02:32 ->01:00:00、01:30:00 ->01:30:00 等

有什么好的简单编码方法的想法吗?

我们使用的是 Java 8

谢谢

更新:请注意,需要截断,而不是四舍五入。这就是这个问题与许多读者提到的另一个问题的不同之处。所以,这不是重复的。

【问题讨论】:

  • 到目前为止您尝试过什么?一分钟是一个整数,你如何将一个整数四舍五入到前 15 分钟?
  • 15分钟是多少秒?如果你知道 - 它会有所帮助吗?你知道模运算符吗?顺便说一句:找到最近的先前值不称为舍入,它称为截断。所以 13:59:59 变成了 13:45:00,对吧?
  • 是的,你是对的,需要截断,而不是四舍五入。这就是这个问题与前面提到的问题的不同之处。
  • 这被称为四舍五入...或地板,在其他一些圈子里。从字面上看,“截断”没有什么不同,重复目标中的答案之一正是这个。

标签: java


【解决方案1】:
    Calendar cal = Calendar.getInstance();

    final int minutes = cal.get(Calendar.MINUTE);
    cal.set (Calendar.MINUTE, minutes - (minutes % 15));
    cal.set (Calendar.SECOND, 0);
    cal.set (Calendar.MILLISECOND, 0);

    System.out.println (new Date(cal.getTimeInMillis()));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多