我有一段时间的字符串格式为"HH:mm“,我希望在不久的将来得到Joda的DateTime。例如,如果现在是3月/28日的16:33,并且给出字符串"5:10",那么我想得到一个DateTime,它是"2014-03-29 05:10",即明天早上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;发布于 2014-03-28 14:46:41
好吧,这听起来是个好主意,把它分成更合适的类型:
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());https://stackoverflow.com/questions/22715870
复制相似问题