我想比较两次,比如12AM和1AM。我已经做了以下功能
public int timeValidation(){
String stTime=btn_srt_time.getText().toString();
String endtime=btn_end_time.getText().toString();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("kk:mm");
Date date1;
Date date2;
try {
date1 = simpleDateFormat.parse(stTime);
System.out.println("================== date1=================="+date1);
date2 = simpleDateFormat.parse(endtime);
System.out.println("===========> date 2 ==============>"+date2);
return date1.compareTo(date2);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
比较时间是在12:00 AM到12:45 AM之间,它给出了正确答案。 但是当我比较凌晨12点到凌晨1点时,它说凌晨1点就是凌晨12:00 请帮忙......
答案 0 :(得分:3)
使用yyyy-MM-dd hh:mm:ss a
。
HH
将是一天中的小时(0-23),而hh
将是上午/下午(1-12)的小时。因此,您的日期格式02:30:00将被解析为而不是转换为PM版本(在一天中的小时将是14:30:00)。
有关更多参考,请查看this
答案 1 :(得分:0)
Date time1, time2;
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");
Calendar cal1 = Calendar.getInstance();
// 12:00 AM
cal1.set(0, 0, 0, 00, 00);
Calendar cal2 = Calendar.getInstance();
// 01:00 AM
cal2.set(0, 0, 0, 01, 00);
try {
time1 = sdf.parse((String) DateFormat.format("hh:mm aaa", cal1));
time2 = sdf.parse((String) DateFormat.format("hh:mm aaa", cal2));
}catch (Exception e){}
if(time2.after(time1)){
//time2 is greater
}else if(time2.before(time1)){
//time1 is greater
}else{
//both time is equal
}