2016-11-23 7 views
-1

Ich speichere die Zeit in der Datenbank in diesem Format: "hh:mm:ss" (Beispiel 09:30:00) und dann abrufen und versuchen, es Benutzern in diesem Format zu zeigen: "hh: mm AM/PM" (Beispiel-09: 30 Uhr).Gibt es eine Möglichkeit, die Zeit vom Format "hh: mm: ss" in "hh: mm AM/PM" zu konvertieren?

Ich bin unten Code für die Umwandlung es:

DateFormat currentTime = new SimpleDateFormat("hh:mm a"); 
String startTimeInSF = currentTime.format(startTime); 
String endTimeInSF = currentTime.format(endTime); 

wo startTime und endTime in hh:mm:ss Format ist, aber der obige Code erzeugt diesen Fehler: java.lang.IllegalArgumentException: Bad class: class java.lang.String.

Bitte lassen Sie mich wissen, wie kann ich die Zeit von hh:mm:ss zu hh:mm AM/PM erfolgreich konvertieren?

+0

Versuchen Sie dieses "hh: mm tt" –

+0

@PrasannaKumarJ fehlgeschlagen! diesen Fehler erzeugt: 'java.lang.IllegalArgumentException: Unbekanntes Musterzeichen 't'' –

+1

Sie benötigen ein' SimpleDateFormat', um Ihr Datum von seinem ursprünglichen Format zu analysieren, und ein anderes 'SimpleDateFormat', um das Ergebnis in ein neues Format zu formatieren. –

Antwort

3

Ich glaube, Sie sollten Ihre "hh: mm: ss" parsen Zeit in einem Date-Objekt, dann Formatierer zu formatieren verwenden, um "hh: mm a".

So:

DateFormat format1 = new SimpleDateFormat("hh:mm:ss"); 
    try { 
     Date date = format1.parse("01:11:22"); 
     SimpleDateFormat format2 = new SimpleDateFormat("hh:mm a"); 
     String result = format2.format(date); 
     return result; 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
1

Ich glaube, Sie suchen nach der Methode parse (String source). Die format() -Methoden nehmen ein Date-Objekt auf und geben eine String-Repräsentation des Objekts aus. Die Parse-Methoden übernehmen ein String-Objekt und konvertieren es in ein Date-Objekt.

Um zu tun, was Sie wollen, müssen Sie ein DateFormat mit hh: mm: ss haben, konvertieren Sie die Datenbank-String in ein Datum mit Parse, und verwenden Sie Ihre vorhandenen DateFormat und verwenden Format für das Date-Objekt zu erhalten die Ausgabezeichenfolge, die Ihrem Benutzer angezeigt wird.

http://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html

0

Sie benötigen Code, so etwas zu ändern, wird Formatierungsfunktion nicht direkt arbeiten auf String-Objekt, das Ursache Ihrer Ausnahme.

DateFormat inputFormatter1 = new SimpleDateFormat"HH:mm:ss"); 
     Date date1 = inputFormatter1.parse("22:10:11"); 

     DateFormat outputFormatter1 = new SimpleDateFormat("hh:mm a"); 
     String output1 = outputFormatter1.format(date1); // 

Out wird 10.10 Uhr sein

Verwandte Themen