首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有指定小时的Joda DateTime :分钟,但比现在晚

有指定小时的Joda DateTime :分钟,但比现在晚
EN

Stack Overflow用户
提问于 2014-03-28 14:38:44
回答 1查看 278关注 0票数 2

我有一段时间的字符串格式为"HH:mm“,我希望在不久的将来得到Joda的DateTime。例如,如果现在是3月/28日的16:33,并且给出字符串"5:10",那么我想得到一个DateTime,它是"2014-03-29 05:10",即明天早上5点,而不是今天早上5点。

我试着用一行代码来实现这一点(因为Joda适合于一行代码),在这种风格中:

代码语言:javascript
复制
String input = "16:33";
DateTime dt = ... // Do fancy Joda one-liner
assert dt.isAfterNow() == true;

听起来很简单,我可以用大约20行代码来完成,我只是觉得必须有一个聪明的方法来做到这一点。

但对于类似的情况,我也会感到满意的:

代码语言:javascript
复制
int hour = 16;
int minute = 33;
DateTime dt = ... // Do fancy Joda one-liner
assert dt.isAfterNow() == true;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-28 14:46:41

好吧,这听起来是个好主意,把它分成更合适的类型:

代码语言:javascript
复制
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());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22715870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档