gpt4 book ai didi

java - 夏令时 (CST + CDT) - 添加分钟问题

转载 作者:行者123 更新时间:2023-11-30 07:28:58 32 4
gpt4 key购买 nike

我正在更新一个能够将约会日期重复到 future 的日程安排应用程序。

约会的 future 约会时间是通过找到原始约会开始时间和结束时间之间的分钟数计算出来的。因此,例如约会时间为 120 分钟。在下面的代码中,预订时间是可以进行约会的时间段。因此,其中的读书时间和约会被复制了。这是预约复制的一次迭代。

Calendar beginCalendar = Calendar.getInstance();
beginCalendar.setTime(newBookTime.getStartDate());
beginCalendar.add(Calendar.MINUTE, bookTimeDiffMinutes);

newAppointment.setStartDate(beginCalendar.getTime());
Calendar endCalendar = Calendar.getInstance();
endCalendar.setTime(newAppointment.getStartDate());
endCalendar.add(Calendar.MINUTE, appointmentDiffMinutes);
newAppointment.setStopDate(endCalendar.getTime());

问题是在 CST 变成 CDT 的夏令时……如果约会的开始时间是 CST 日的晚上 11 点,然后是 CDT 日的结束时间,比如凌晨 2 点……我的约会结束晚一个小时或早一个小时(取决于他们的时钟是倒退还是前进)。这是因为当我为约会添加 X 分钟时......那天真的少了 1 小时,因为我们跳过了一个小时。

因此,当我打印日期时,我可以在夏令时看到时区从 CST 更改为 CDT:

预约时间为20:00-6:00

[STDOUT] The book time start date:Sat Mar 07 20:00:00 CST 2015
[STDOUT] The book time stop date:Sun Mar 08 07:00:00 CDT 2015

而在非夏令时更改日我们看到:

[STDOUT] The book time start date:Sun Mar 08 20:00:00 CDT 2015
[STDOUT] The book time stop date:Mon Mar 09 06:00:00 CDT 2015

我想知道如何弥补这一点,并确保我的约会和预订时间在时区从 CST 更改为 CDT 的那一天是正确的。如果我有一种检测变化的聪明方法,我可以增加或减少 60 分钟。

寻找输入。

最佳答案

目标似乎是进行相同持续时间的约会,无论约会是发生在白天还是标准时间,或者恰好跨越时间变化。鉴于此,那么您的代码就可以正常工作,输出反射(reflect)了它正在使用更改的偏移量进行打印的事实:在 DST 生效前一天晚上 20:00:00 CST 开始的 10 小时约会应该第二天 07:00:00 CDT 结束,因为时区将“提前”一个小时。

关于java - 夏令时 (CST + CDT) - 添加分钟问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8827420/

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