Oracle
 sql >> Datenbank >  >> RDS >> Oracle

NLS_DATE_FORMAT mit JDBC

Die NLS-Unterstützung des JDBC-Treibers wurde in Oracle 10g eingestellt . Unabhängig davon würde ich empfehlen, dass Sie sich nicht auf die Oracle-spezifische NLS-Funktionalität verlassen, um Ihre Daten zu formatieren.

So formatieren Sie ein Datum, das aus einer beliebigen Datenbank in Java abgerufen wurde:

Connection conn = ods.getConnection();
Statement stat = conn.createStatement();

ResultSet rs = stat.executeQuery("select date_column from test_table");

DateFormat format = new SimpleDateFormat('yyyy-dd-MM');
System.out.println(format.format(rs.getDate(1));

Beachten Sie, dass eine Instanz von SimpleDateFormat wiederverwendbar, aber nicht Thread-sicher ist .

Wenn Sie Java 8 verwenden, möchten Sie möglicherweise stattdessen die neue und verbesserte Java Time API verwenden. Leider wurde ResultSet noch nicht aktualisiert, um eine Instanz von DateTime zurückzugeben, also müssen Sie konvertieren. Sehen Sie sich DateTimeFormatter an und diese Frage darüber, wie man von alt zu neu konvertiert. Neben anderen Vorteilen ist DateTimeFormatter vollständig Thread-sicher.

Die Formatmuster für den alten und den neuen Stil sind gleich; hier sind die Dokumente für die neue.