[英]How do I change the hour and minute on a joda time DateTime object?
[英]Joda DateTime with specified hour:minute, but later than now
我有一段时间使用“ 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;
好吧,将其分成更合适的类型似乎是一个好主意:
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());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.