2 votes

Extraire l'heure/la date avec les informations de fuseau horaire intactes dans Java8 OffsetTime / OffsetDateTime

Comment extraire des données, en conservant les informations relatives au fuseau horaire, dans Java8 ? java.time.OffsetTime et java.time.OffsetDateTime les valeurs de la base de données qui ont des types SQL TIME_WITH_TIME_ZONE / TIMESTAMP_WITH_TIME_ZONE ? C'est-à-dire Si la base de données contient une heure avec un fuseau horaire qui est +03:00 o -05:00 J'aimerais que la spécificité du fuseau horaire soit préservée dans le système d'information. OffsetTime et OffsetDataTime que je crée à partir des valeurs de la base de données.

Dans mon cas particulier, les heures et les valeurs d'horodatage proviennent de MS SQLServer. penser qui devrait avoir de l'importance... [Edit : Looks like MS SQLServer only has datetimeoffset qui tient compte du fuseau horaire, rien à faire TIME_WITH_TIME_ZONE .]

3voto

Adam Points 5429

Cela devrait être possible en utilisant le deuxième argument de getObject(), mais je n'ai pas d'instance MS SQLServer pour tester cela...

Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM mytable WHERE columnfoo = 500");
while (rs.next()) {
    System.out.print("Column 1 returned ");
    OffsetDateTime localDate = rs.getObject(1, OffsetDateTime.class);
    System.out.println(localDate);
}
rs.close();
st.close();

Notez que cela ne semble être disponible que dans la version 4.2 et les versions ultérieures du pilote JDBC pour votre base de données qui sont compatibles avec Java 8... Voir note de mise à jour pour la 4.2

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X