在joda时间获得"前一天15:00"的最简单的正确方法是什么?

Dal*_*pić 1 java time datetime jodatime

假设我有一个DateTime参考,我希望在前一天的15:00获得时间.如果我说

DateTime someTime = ....;
DateTime yesterday1500 = someTime.toDateMidnight().toDateTime().minusDays(1).plusHours(15);
Run Code Online (Sandbox Code Playgroud)

然后这将在所有日子工作,除非有夏令时变化.
如果someTime ='1.4.2014',我会得到'31 .3.2014 15:00'.
如果someTime = '31 .3.2014'我会得到'30 .3.2014 16:00'.

我能想到的最好的是

yesterday1500 = new DateTime(someTime.getYear(), someTime.getMonthOfYear(), someTime.getDayOfMonth(), 15, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)

它工作正常,但看起来很笨重.有没有更好的办法?

编辑:我在克罗地亚是CEST(UTC + 01:00)时区.

编辑2:添加了... toDateMidnight().toDateTime()...示例代码,表明someTime可以在任何时间点

Dun*_*nes 6

这很整洁:

DateTime dt = someTime.minusDays(1).withTime(15, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)