2016-03-24 4 views
2

Ich hatte einige Schwierigkeiten beim Vergleich der aktuellen Zeit mit der Zeit, die ich aus Textdatei abgerufen. Die Zeit von meiner Textdatei ist im 12-Stunden-Format, zB 12:30 Uhr. Zur Zeit habe ich diesen Code, die die Zeit im 24-Stunden-Format zu vergleichen, ich nicht sicher, wie es zwischen der Zeit im 12-Stunden-Format zu vergleichen, um zu konvertieren:Wie zwei Variablen im 12-Stunden-Format zu vergleichen

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); 
    } 
} 

Vielen Dank im Voraus.

Antwort

0

Verwenden h:mm a statt HH:mm als Eingabeformat.

public static final String inputFormat = "h:mm a"; 
  • h steht für Stunde in AM/PM (1-12)
  • mm steht für Minute in Stunde
  • a steht für AM oder PM

Beachten Sie auch, dass Ihr In zwei Beispielteststrings fehlt der AM/PM-Marker.