乔达本地时间Meridiem解析 [英] Joda LocalTime Meridiem parse

查看:161
本文介绍了乔达本地时间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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆