我需要得到Joda的DateTime
对象,它将代表莫斯科时间的下一个(最近的)上午8点。即如果现在莫斯科时间早上7点,那么我想在同一天上午8点(这将在1小时内发生),如果当前时间超过莫斯科时间早上8点(例如下午3点或15点) ,那我需要第二天上午8点(8点)。
是否有一些简单的内置方法可以做到这一点?
现在我想我会使用这段代码/伪代码来实现它:
// get current moment in default time zone
DateTime dt = new DateTime();
// translate to Moscow local time
DateTime dtMoscow = dt.withZone(DateTimeZone.forID("Europe/Moscow"));
if (dtMoscow.getHourOfDay >= 8) {
dtMoscow = dtMoscow.plusDays(1)
}
DateTime result = dtMoscow.withHourOfDay(8).withMinuteOfHour(0).withSecondOfMinute(0)