乔达本地时间Meridiem解析 [英] Joda LocalTime Meridiem parse
本文介绍了乔达本地时间Meridiem解析的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我使用 08:00
为的startTime
和 09:00
为 endTime的
然后我如果
语句完美的作品
本地时间选择=新的本地时间(hourOfDay,分钟);
如果(selected.isAfter(startTime时)及&安培; selected.isBefore(endTime的)){
//做了一些工作
}
但每当我使用 11:00
为的startTime
和 02:00
为 endTime的
然后我的if语句不工作。
本地时间的startTime = LocalTime.parse(11:00 PM,DateTimeFormat.forPattern(KK:毫米));
本地时间endTime的= LocalTime.parse(02:00,DateTimeFormat.forPattern(KK:毫米));
本地时间选择=新的本地时间(hourOfDay,分钟);
如果(selected.isAfter(startTime时)及&安培; selected.isBefore(endTime的)){
//做了一些工作
}
解决方案
您的startTime
超越了你的 endTime的
在第二例子。毫无时间大于23:00且小于2:00 AM。
编辑:
您必须检查的startTime大于endTime的,并相应地改变你的查询,FE:
本地时间的startTime = LocalTime.parse(11:00 PM,DateTimeFormatter.ofPattern(KK:毫米));
本地时间endTime的= LocalTime.parse(02:00,DateTimeFormatter.ofPattern(KK:毫米));
本地时间选择= LocalTime.parse(01:00,DateTimeFormatter.ofPattern(KK:毫米));
如果(startTime.isBefore(endTime的)){
如果(selected.isAfter(startTime时)及&安培; selected.isBefore(endTime的)){
的System.out.println(它的工作原理!);
}
}否则,如果(startTime.isAfter(endTime的)){
如果(selected.isAfter(startTime时)|| selected.isBefore(endTime的)){
的System.out.println(它的工作原理!);
}
} 其他 {
//决定做什么,如果startTime和endTime都要平等。
}
When I use 08:00 AM
as startTime
and 09:00 AM
as endTime
then my if
statement works perfect
LocalTime selected = new LocalTime(hourOfDay, minute);
if (selected.isAfter(startTime) && selected.isBefore(endTime)) {
// doing some work
}
But whenever i use 11:00 PM
as startTime
and 02:00 AM
as endTime
then my if statement not working.
LocalTime startTime = LocalTime.parse("11:00 PM", DateTimeFormat.forPattern("KK:mm a"));
LocalTime endTime = LocalTime.parse("02:00 AM", DateTimeFormat.forPattern("KK:mm a"));
LocalTime selected = new LocalTime(hourOfDay, minute);
if (selected.isAfter(startTime) && selected.isBefore(endTime)) {
// doing some work
}
解决方案
Your startTime
as bigger than your endTime
in the 2nd example. There can be no time that is bigger than 11:00 PM and smaller than 2:00 AM.
Edit:
You must check if startTime is bigger than endTime and change your query accordingly, f.e.:
LocalTime startTime = LocalTime.parse("11:00 PM", DateTimeFormatter.ofPattern("KK:mm a"));
LocalTime endTime = LocalTime.parse("02:00 AM", DateTimeFormatter.ofPattern("KK:mm a"));
LocalTime selected = LocalTime.parse("01:00 AM", DateTimeFormatter.ofPattern("KK:mm a"));
if (startTime.isBefore(endTime)) {
if (selected.isAfter(startTime) && selected.isBefore(endTime)) {
System.out.println("It works!");
}
} else if (startTime.isAfter(endTime)) {
if (selected.isAfter(startTime) || selected.isBefore(endTime)) {
System.out.println("It works!");
}
} else {
// Decide what to do if startTime and endTime are equal.
}
这篇关于乔达本地时间Meridiem解析的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文