我有一段时间的格式" HH:mm"我想在不久的将来获得Joda的DateTime。例如,如果现在是3月28日的16:33,并且我给了字符串"5:10"
,那么我想要得到一个DateTime,即#34; 2014-03-29 05:10&#34 ;即明天凌晨5点,而不是今天凌晨5点。
我试图通过单行代码来实现这一点(因为Joda适合单行),就是这种风格:
String input = "16:33";
DateTime dt = ... // Do fancy Joda one-liner
assert dt.isAfterNow() == true;
听起来非常简单,我可以在大约20行代码中完成,我只是认为必须有一种聪明的方法来做到这一点。
但我也会对类似案件的单行程表示满意:
int hour = 16;
int minute = 33;
DateTime dt = ... // Do fancy Joda one-liner
assert dt.isAfterNow() == true;
答案 0 :(得分:1)
嗯,听起来将它分成更合适的类型是个好主意:
LocalTime userTime = ...; // Parse the user input
DateTime now = DateTime().now();
LocalDate today = now.toLocalDate();
LocalDate resultDate = now.toLocalTime().isBefore(userTime) ? today : today.plusDays(1);
DateTime result = resultDate.toDateTime(userTime, now.getTimeZone());