Heim  >  Artikel  >  Datenbank  >  Hier sind einige Titeloptionen, die sich auf das Kernproblem und die Lösung konzentrieren: Option 1 (direkt und problemorientiert): * Warum erzeugt SimpleDateFormat.parse bei der Konvertierung von UNIX-Zeiten eine inkonsistente Ausgabe?

Hier sind einige Titeloptionen, die sich auf das Kernproblem und die Lösung konzentrieren: Option 1 (direkt und problemorientiert): * Warum erzeugt SimpleDateFormat.parse bei der Konvertierung von UNIX-Zeiten eine inkonsistente Ausgabe?

Susan Sarandon
Susan SarandonOriginal
2024-10-27 20:46:01632Durchsuche

Here are a few title options, focusing on the core issue and solution:

Option 1 (Direct and Problem-Focused):

* Why does SimpleDateFormat.parse produce inconsistent output when converting UNIX timestamps?

Option 2 (More Specific to the Cause):

* Time

Diskrepanz im Ausgabeformat von SimpleDateFormatter.parse

Beim Versuch, einen UNIX-Zeitstempel mithilfe von SimpleDateFormat in ein bestimmtes Datumsformat zu konvertieren, kann es zu Inkonsistenzen zwischen Benutzern kommen die formatierten und analysierten Ausgaben.

Ein Grund für diese Diskrepanz ist die Möglichkeit nicht übereinstimmender Zeitzonen. Stellen Sie sicher, dass die Zeitzone von SimpleDateFormat mit der erwarteten Ausgabe übereinstimmt. Stellen Sie außerdem sicher, dass der Epochenzeitstempel in Millisekunden dargestellt wird, wie vom Date-Konstruktor gefordert.

Vorgeschlagene Lösung:

Um potenzielle Formatierungsprobleme zu vermeiden und die Datenbankkompatibilität sicherzustellen, verwenden Sie es Es wird empfohlen, Datumsobjekte anstelle von Zeichenfolgen direkt an MySQL zu übergeben. Verwenden Sie java.time-Klassen wie LocalDateTime, um Datums- und Uhrzeitangaben darzustellen.

Hier ist ein aktualisierter Codeausschnitt:

<code class="java">String ep = "a1527069600";
long epoch = Long.parseLong(ep.substring(1));
Instant instant = Instant.ofEpochSecond(epoch);
LocalDateTime ldt = instant.atZone(ZoneId.of("Asia/Calcutta")).toLocalDateTime();

PreparedStatement ps = myDatabaseConnection.prepareStatement(
        "insert into my_table (my_date_time) values (?)");
ps.setObject(1, ldt);</code>

Dieser Ansatz stellt sicher, dass das Datum entsprechend der angegebenen Zeit formatiert wird Zone und wird als Objekt in der Datenbank gespeichert, wodurch die Möglichkeit von Formatierungsfehlern ausgeschlossen wird.

Das obige ist der detaillierte Inhalt vonHier sind einige Titeloptionen, die sich auf das Kernproblem und die Lösung konzentrieren: Option 1 (direkt und problemorientiert): * Warum erzeugt SimpleDateFormat.parse bei der Konvertierung von UNIX-Zeiten eine inkonsistente Ausgabe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn