2016-03-24 30 views
2

當我試圖比較當前時間與從文本文件中檢索的時間時,我遇到了一些困難。我的文本文件的時間爲12小時格式,例如12:30。目前,我有這樣的代碼被比較的時間在24小時格式,我不知道如何將它轉換爲12小時格式的時間之間比較:提前如何比較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); 
    } 
} 

感謝。

回答

0

使用h:mm a而不是HH:mm作爲輸入格式。

public static final String inputFormat = "h:mm a"; 
  • h代表在AM/PM小時(1-12)
  • mm代表分鐘,以每小時
  • a代表上午或下午

另外請注意,您的兩個示例測試字符串缺少AM/PM標記。