2016-07-16 6 views
1

Ich habe eine Zeichenfolge wie "2015-07-16 17:07:21". Ich möchte es in ein Date desselben Formats konvertieren. Ich habe so etwas versucht.Wie konvertiert man eine Zeichenfolge in das Format JJJJ-MM-TT HH: MM: ss

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:MM:ss"); 
Date date = sdf.parse("2015-07-16 17:07:21"); 

Aber Ausgabe war anderes Format wie Thu Jul 16 17:00:21 IST 2015. Wie kann ich es so funktionieren lassen, wie ich es brauche? Kann mir jemand helfen. Ich weiß, das könnte ein Duplikat sein, aber ich habe kein Glück gefunden.

+6

ein Datum nicht über ein Format, es hat einen Wert, der einen Zeitpunkt darstellt. Wenn Sie es in einem bestimmten Format anzeigen möchten, sollten Sie SimpleDateFormat verwenden – guleryuz

+1

Wie kann ich das tun. Können Sie mir bitte ein Beispiel oder einen Verweis geben? – sparrow

+0

Wenn Sie möchten, dass es anders formatiert wird, definieren Sie ein anderes SimpleDateformat mit dem Muster, das Sie benötigen, und formatieren Sie das Datum damit. Um es klar zu sagen: Sie haben ein SimpleDateformat, das die Eingabe analysiert, und eine, um die Ausgabe zu drucken. –

Antwort

8

Von der Java API https://docs.oracle.com/javase/8/docs/api/java/util/Date.html

Die Klasse Date steht für einen bestimmten Zeitpunkt mit Millisekunden-Präzision verwenden.

Versuchen Sie, den Unterschied/Verbindung von Date und DateFormat zu verstehen.

public static void main(String [] args) throws ParseException{ 
    String dateString = "2015-07-16 17:07:21"; 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 

    // use SimpleDateFormat to define how to PARSE the INPUT 
    Date date = sdf.parse(dateString); 

    // at this point you have a Date-Object with the value of 
    // 1437059241000 milliseconds 
    // It doesn't have a format in the way you think 

    // use SimpleDateFormat to define how to FORMAT the OUTPUT 
    System.out.println(sdf.format(date)); 

    sdf = new SimpleDateFormat(); 
    System.out.println(sdf.format(date)); 

    // .... 
} 

Ausgang: (Bitte beachten Sie, dass das Datum gleich bleibt, nur seine Darstellung (Format) ändert)

2015-07-16 17:07:21 
7/16/15 5:07 PM 
0

try Format-String wie: yyyy-MM-dd HH: mm: ss

M: Monat, m: Minute

public static void main(String [] args){ 
    String dateString = "2015-07-16 17:07:21"; 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    Date date; 
    try { 
     date = sdf.parse(dateString); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
     return; 
    } 
    System.out.println(sdf.format(date)); 
    System.out.println(dateString.equals(sdf.format(date))); 
} 

auch ein Datum kein Format hat, hat es ein Wert, der einen Zeitpunkt darstellt. wenn Sie es in einem gewissen Format angezeigt werden sollen, sollten Sie Simple

+0

Ich habe es versucht. es funktioniert nicht – sparrow

+0

sdf.format (date) gibt den String erneut zurück. – sparrow

-1

diesen Code Siehe:

public static void main(String [] args){ 
    String dateString = "2015-07-16 17:07:21"; 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    Date date; 
    try { 
     date = sdf.parse(dateString); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
     return; 
    } 
    System.out.println(date); // Displays date in it's default format Jul 16 17:00:21 IST 2015 
    System.out.println(dateString.equals(date)); // Returns false since 'Jul 16 17:00:21 IST 2015' is not equal to dateString (2015-07-16 17:07:21) 
} 

Date-Klasse speichert immer Datum in seinem Standardformat. Das SimpleDateFormat hilft beim Formatieren des Datums mit seinem Objekt. Das Datumsklassenobjekt wird nicht geändert. Stattdessen wird die Date-Klasse in ein benutzerdefiniertes Format konvertiert, das keine Auswirkungen auf das Date-Klassenobjekt hat. Ich denke, es ist klar.

0

Versuchen Sie, diese zu nutzen:

public static void main(String[] args) { 
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    String dateInString = "2015-07-16 17:07:21"; 
    try { 

     Date date = formatter.parse(dateInString); 

     System.out.println(date); 
     System.out.println(formatter.format(date)); 

    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
} 

Ausgang:

Thu Jul 16 17:07:21 IST 2015 
2015-07-16 17:07:21 

Hinweis: Für vollständige Datum und Zeitmuster finden Sie in diesem http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

Verwandte Themen