通过在Joda Time中指定小时来获取最近的DateTime

时间:2016-01-18 14:00:39

标签: java datetime jodatime

我需要得到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) 

0 个答案:

没有答案