关于android:确定从hh:mm:ss到hh:mm:ss的时间是am,pm还是两者都是java

Determine whether time from hh:mm:ss to hh:mm:ss is am,pm, or both java

我有2个时间字符串,即"从"和"到"时间。

例:

1
2
String from="05:30:22";
String to ="14:00:22";

如何使用日历格式确定从上到下的时间是上午或两者。

我的工作:

我得到的时间:

1
2
agenda_from_hour = Integer.valueOf(from.substring(0, 2));
agenda_to_hour = Integer.valueOf(to .substring(0, 2));

然后

1
2
3
4
5
6
7
8
9
10
11
if (agenda_from_hour>=12&&agenda_to_hour<=24){

//pm

                } else if (agenda_from_hour>=0&&agenda_to_hour<=12){

//am
                } else {

//am and pm
                }

问题是当我有时间从6:00:00到12:30:44,am是输出。

是否有更好的方法来比较2个字符串时间和确定它是上午,下午还是两者。

谢谢。


试试这个:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public static void main(String[] args) throws ParseException {
    String from="05:30:22";
    String to ="14:00:22";
    boolean fromIsAM = isAM(from);
    boolean toIsAM = isAM(to);
}
/**
 * Return true if the time is AM, false if it is PM
 * @param HHMMSS in format"HH:mm:ss"
 * @return
 * @throws ParseException
 */

public static boolean isAM(String HHMMSS) throws ParseException {
    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
    Date date = sdf.parse(HHMMSS);
    GregorianCalendar gc = new GregorianCalendar();
    gc.setTime(date);
    int AM_PM = gc.get(Calendar.AM_PM);
    if (AM_PM==0) {
        return true;
    } else {
        return false;
    }

}

使用Java Calendar API类本身..检查以下答案:
java获取日期标记字段(am / pm),
考虑AM / PM,计算Java中的日期/时间差