Java 什么';这是将日期缩短为15分钟间隔的最佳方法
我希望编写一个函数,将接收到的时间戳截断为最近的前15分钟间隔。 即01:16:58->01:15:00、01:02:32->01:00:00、01:30:00->01:30:00等 有什么好的简单的编码方法吗 我们在Java8上 谢谢Java 什么';这是将日期缩短为15分钟间隔的最佳方法,java,Java,我希望编写一个函数,将接收到的时间戳截断为最近的前15分钟间隔。 即01:16:58->01:15:00、01:02:32->01:00:00、01:30:00->01:30:00等 有什么好的简单的编码方法吗 我们在Java8上 谢谢 更新:请注意,截断是必需的,而不是四舍五入。这就是这个问题与一些读者提到的另一个问题的不同之处。所以,这不是重复的。到目前为止,您尝试了什么?一分钟是整数,你如何将整数舍入到前15分钟?15分钟是多少秒?如果你知道这一点,它会有帮助吗?你知道模算子吗?顺便说一句
更新:请注意,截断是必需的,而不是四舍五入。这就是这个问题与一些读者提到的另一个问题的不同之处。所以,这不是重复的。到目前为止,您尝试了什么?一分钟是整数,你如何将整数舍入到前15分钟?15分钟是多少秒?如果你知道这一点,它会有帮助吗?你知道模算子吗?顺便说一句:查找最近的、以前的值不是取整,而是截断。所以13:59:59得到13:45:00,对吗?是的,你是对的,截断是必需的,而不是四舍五入。这就是这个问题与前面提到的问题的不同之处。这叫做取整。。。或者地板,在其他一些圈子里。从字面上看,与“截断”没有什么不同,重复目标中的一个答案正好解决了这个问题。
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()));