首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在java中将时间缩短到最接近的四分之一小时?

如何在java中将时间缩短到最接近的四分之一小时?
EN

Stack Overflow用户
提问于 2019-05-30 00:17:05
回答 2查看 0关注 0票数 0

鉴于今天的时间,例如下午2:24,如何让它到下午2:30?

同样,如果时间是下午2:17,我如何让它到下午2:15?

EN

回答 2

Stack Overflow用户

发布于 2019-05-30 08:18:19

如果您只想向下舍入,这是一个使用Java Time API的更易读的版本:

LocalDateTime time = LocalDateTime.now();
LocalDateTime lastQuarter = time.truncatedTo(ChronoUnit.HOURS)
                                .plusMinutes(15 * (time.getMinute() / 15));

输出:

2016-11-04T10:58:10.228

2016-11-04T10:45:00

票数 0
EN

Stack Overflow用户

发布于 2019-05-30 09:46:47

有了上面的答案,你最终得到了所有有趣的代码来处理溢出到几小时,几天等。

我将使用自纪元以来的ms时间。

添加7.5分钟或7.5x60x1000 = 450000

并截断为900000的倍数

new Date(900000 * ((date.getTime() + 450000) / 900000))

这是有效的,因为ms时间开始的时间恰好是00:00:00。而且由于世界上所有时区都以15分钟的步长变化,这不会影响四舍五入。

(哎呀,我有一个0太多,忘了一些重要的括号:现在还为时尚早)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档