gpt4 book ai didi

java - 如何将日期截断/跨度为一个时间间隔?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:02:56 25 4
gpt4 key购买 nike

我尝试使用 Instant.truncatedTo 截断日期,但它似乎不允许截断超过一天的持续时间。我想要做的是使用特定时间间隔截断日期。例如:

For 1hour interval, 2014-10-18T11:30:52.560Z should become: 2014-10-18T11:00:00.000Z 
For 1day interval, 2014-10-18T11:30:52.560Z should become: 2014-10-18T00:00:00.000Z
For 1month interval, 2014-10-18T11:30:52.560Z should become: 2014-10-01T00:00:00.000Z
For 6month interval, 2014-10-18T11:30:52.560Z should become: 2014-07-01T00:00:00.000Z

因此它更像是将日期跨越到特定的时间间隔。

我实际上是使用时间戳值来将它们除以时间戳间隔 ((dateTimestamp/intervalTimestamp)*intervalTimestamp) 但是当使用月份时,没有固定的时间戳值,因为月份的天数可能会改变所以它不起作用几个月。

最佳答案

您可以编写自己的函数:

public LocalDateTime truncateTo(LocalDateTime dt, Time interval) {
switch(interval) {
case MONTH_6:
if(dt.getMonthValue() > 6)
dt = dt.withMonth(7);
else
dt = dt.withMonth(1);
case MONTH:
dt = dt.withDayOfMonth(1);
case DAY:
dt = dt.withHour(0);
case HOUR:
dt = dt.withMinute(0);
dt = dt.withSecond(0);
dt = dt.withNano(0);
break;
}
return dt;
}

关于java - 如何将日期截断/跨度为一个时间间隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26439431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com