sql >> Database teknologi >  >> RDS >> Oracle

NLS_DATE_FORMAT med JDBC

NLS-understøttelse fra JDBC-driveren blev faldet i Oracle 10g . Uanset hvad vil jeg anbefale, at du ikke læner dig op ad den Oracle-specifikke NLS-funktionalitet til at formatere dine datoer.

For at formatere en dato hentet fra en database i Java, skal du gøre dette:

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

Bemærk, at en forekomst af SimpleDateFormat er genanvendelig, men ikke trådsikker .

Hvis du bruger Java 8, vil du måske bruge den nye og forbedrede Java Time API i stedet. Desværre er ResultSet ikke blevet opdateret til at returnere en forekomst af DateTime endnu, så du skal konvertere. Tjek DateTimeFormatter og dette spørgsmål om hvordan man konverterer fra gammelt til nyt. Blandt andre fordele er DateTimeFormatter fuldt trådsikkert.

Formatmønstrene for både den gamle og nye stil er de samme; her er dokumenterne for den nye.




  1. C# Entity Framework:Nøgleord ikke understøttet:'port'

  2. Ekko fra MySQL-database med mellemrum og linjeskift?

  3. Hvordan kan jeg filtrere en forespørgsel efter timedelen af ​​et DateTime-felt i MySQL?

  4. Operatøren findes ikke:json =json