【问题标题】:How to compare two times variable in 12-hours format [duplicate]如何以 12 小时格式比较两次变量 [重复]
【发布时间】:2016-07-11 15:04:53
【问题描述】:

在尝试将当前时间与从文本文件中检索到的时间进行比较时,我遇到了一些困难。我的文本文件中的时间是 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);
    }
}

提前致谢。

【问题讨论】:

    标签: java date time compare


    【解决方案1】:

    使用h:mm a 而不是HH:mm 作为输入格式。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多