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可以在任何时间点
这很整洁:
DateTime dt = someTime.minusDays(1).withTime(15, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
715 次 |
| 最近记录: |