如何在12小时格式中比较两次变量

时间:2016-03-24 04:10:33

标签: java date time compare

我在尝试将当前时间与从文本文件中检索的时间进行比较时遇到了一些困难。我的文本文件的时间是12小时格式,例如下午12:30。目前我有这个代码比较24小时格式的时间,我不知道如何转换它来比较12小时格式的时间:

public static final String inputFormat = "HH:mm";

private Date date;
private Date dateCompareOne;
private Date dateCompareTwo;

private String compareStringOne = "9:45";
private String compareStringTwo = "1:45";

SimpleDateFormat inputParser = new SimpleDateFormat(inputFormat, Locale.US);

private void compareDates(){
    Calendar now = Calendar.getInstance();

    int hour = now.get(Calendar.HOUR);
    int minute = now.get(Calendar.MINUTE);

    date = parseDate(hour + ":" + minute);
    dateCompareOne = parseDate(compareStringOne);
    dateCompareTwo = parseDate(compareStringTwo);

    if ( dateCompareOne.before( date ) && dateCompareTwo.after(date)) {
        //yada yada
    }
}

private Date parseDate(String date) {

    try {
        return inputParser.parse(date);
    } catch (java.text.ParseException e) {
        return new Date(0);
    }
}

提前致谢。

1 个答案:

答案 0 :(得分:0)

使用h:mm a代替HH:mm作为输入格式。

public static final String inputFormat = "h:mm a";
  • h代表上午/下午(1-12)
  • 的小时
  • mm代表分钟
  • a代表AM或PM

另请注意,您的两个示例测试字符串缺少AM / PM标记。