Warum " = SimpleDateFormat.format () " = SimpleDateFormat.parse() geben unterschiedliche Zeit, obwohl die Einstellung nur eine Zeitzone?

Ich versuche die Zeitzone setzen, um die verschiedenen Länder timezone mit Hilfe von " = SimpleDateFormat. "=SimpleDateFormat.format() gibt richtige aktuelle Zeit in der angegebenen Zeitzone aber " = SimpleDateFormat.parse() gibt lokale Strom der Zeit, ich weiß nicht, warum dies geschieht. Hier ist mein code -

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:MM:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));
System.out.println("Time1 : " + dateFormat.format(new Date()));
System.out.println("Time2 : " + dateFormat.parse(dateFormat.format(new Date())));

Die Ausgabe -

Time1 : 2013-01-17 21:01:55
Time2 : Fri Jan 18 10:30:55 IST 2013

Time1 ist die Ausgabe von "America/Los_Angeles" und Zeit2 ist die Ausgabe des lokalen(D. H. "Asia/Calcutta").

Ich will nur die aktuelle Zeit der angegebenen Zeitzone in UTC-Sekunden-format (also Sekunden seit dem Jan 1, 1970).

Warum " = SimpleDateFormat.format () " = SimpleDateFormat.parse() geben unterschiedliche Zeit, obwohl die Einstellung nur eine Zeitzone?

Bitte helfen Sie mir.

Ihre Letzte Zeile ist effektiv er selben als-System.aus.println(new Date());
Bedeutet, dass es keine Verwendung von " = SimpleDateFormat.parse()
Natürlich es ist. Sagen, Sie haben einen string der ein Datum in einem XML-Dokument oder eine Datenbank, oder sone EDI-Datei, verwenden Sie die Methode parse in ein Datum. Das ist nur ein Anwendungsfall.
Danke @Wahrnehmung, es scheint, format() und parse() haben unterschiedliche Funktionen.
FYI, die furchtbar lästig alten Datum-Zeit-Klassen wie java.util.Date, java.util.Calendar, und java.text.SimpleDateFormat sind jetzt legacy, überlagert von der java.Zeit Klassen gebaut in Java 8 und höher. Siehe Einführung Oracle.

InformationsquelleAutor Deepu | 2013-01-18

Schreibe einen Kommentar