Oracle
 sql >> Base de données >  >> RDS >> Oracle

NLS_DATE_FORMAT avec JDBC

La prise en charge NLS du pilote JDBC a été abandonnée dans Oracle 10g . Quoi qu'il en soit, je vous recommande de ne pas vous appuyer sur la fonctionnalité NLS spécifique à Oracle pour formater vos dates.

Pour formater une date extraite de n'importe quelle base de données en Java, procédez comme suit :

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));

Notez qu'une instance de SimpleDateFormat est réutilisable mais pas thread-safe .

Si vous utilisez Java 8, vous souhaiterez peut-être utiliser à la place la nouvelle API Java Time améliorée. Malheureusement, ResultSet n'a pas encore été mis à jour pour renvoyer une instance de DateTime, vous devez donc convertir. Consultez DateTimeFormatter et cette question sur la façon de convertir de l'ancien au nouveau. Entre autres avantages, DateTimeFormatter est entièrement thread-safe.

Les modèles de format pour l'ancien et le nouveau style sont les mêmes ; voici les documents pour le nouveau.