SimpleDateFormatter.parse gibt anders aus als angegeben
Beim Konvertieren von UNIX-Zeitstempeln in Datumsangaben mit SimpleDateFormat können Diskrepanzen zwischen dem angegebenen Format und dem angegebenen Format auftreten Ausgabe.
Im gegebenen Beispiel besteht das Ziel darin, einen UNIX-Zeitstempel („a1527069600“) in ein Datum im Format „TT/MM/JJJJ hh:mm:ss a“ zu konvertieren. Die Verwendung von SimpleDateFormatter.format gefolgt von SimpleDateFormatter.parse führt jedoch zu einer anderen Ausgabe.
Ursache der Diskrepanz
Die Diskrepanz tritt auf, weil SimpleDateFormatter.parse eine Zeichenfolge in der exakten Reihenfolge erwartet Format, das bei der Instanziierung angegeben wurde („TT/MM/JJJJ hh:mm:ss a“). In diesem Fall gibt SimpleDateFormatter.format das Datum in einem anderen Format als dem erwarteten Eingabeformat aus, was dazu führt, dass der Analysevorgang fehlschlägt.
Lösung
Um dieses Problem zu vermeiden , wird empfohlen, keine Datumszeichenfolgen an MySQL-Datenbanken zu übergeben. Verwenden Sie stattdessen Datumsobjekte. Die moderne Java-API für Datum und Uhrzeit, java.time, bietet Klassen wie LocalDateTime, die die Datumsverarbeitung vereinfachen.
Beispiel:
String ep = "a1527069600";
long epoch = Long.parseLong(ep.substring(1));
Instant inst = Instant.ofEpochSecond(epoch);
LocalDateTime ldt = inst.atZone(ZoneId.of("Asia/Calcutta")).toLocalDateTime();
System.out.println(ldt.toString()); // Output: 2018-05-23T15:30
PreparedStatement ps = myDatabaseConnection.prepareStatement(
"insert into my_table (my_date_time) values (?)");
ps.setObject(1, ldt);
Dieser Code konvertiert den UNIX-Zeitstempel in einen LocalDateTime, der direkt in die MySQL-Datenbank eingefügt werden kann.
Fazit:
Durch die Verwendung von java.time und die Übergabe von Datumsobjekten anstelle von Zeichenfolgen an MySQL können Sie Formatierungsprobleme beseitigen und die Genauigkeit der Datumskonvertierung sicherstellen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3