我在尝试将当前时间与从文本文件中检索到的时间进行比较时遇到了一些困难。我的文本文件中的时间是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);
}
}
提前谢谢。
使用h:mm a
而不是HH:mm
作为输入格式。
public static final String inputFormat = "h:mm a";
h
代表AM/PM中的小时(1-12)mm
代表小时中的分钟a
代表AM或PM
还要注意,您的两个示例测试字符串缺少AM/PM标记。