Je veux convertir java.time.LocalDate
en java.util.Date
type. Parce que je veux définir la date JDateChooser
. Ou existe-t-il un sélecteur de date qui prend en charge les java.time
dates?
373
Je veux convertir java.time.LocalDate
en java.util.Date
type. Parce que je veux définir la date JDateChooser
. Ou existe-t-il un sélecteur de date qui prend en charge les java.time
dates?
Réponses:
Cela suppose que votre sélecteur de date utilise le fuseau horaire par défaut du système pour transformer les dates en chaînes.
la source
atStartOfDay()
, car cela change la valeur de la date, si je comprends bien.Voici une classe utilitaire que j'utilise pour convertir les nouvelles
java.time
classes enjava.util.Date
objets et vice versa:Modifié sur la base du commentaire @Oliv.
la source
ZoneId.systemDefault()
problématique car les fuseaux horaires changent au cours de l'année. Donc, si le 1er janvier, je suis dans le fuseau horaire -05: 00 (central), mais le 1er juillet, je suis dans le fuseau horaire -06: 00 (lumière du jour centrale), cela ne provoquera pas de résultats inexacts en raison de l'heure d'été temps?Vous pouvez utiliser la
java.sql.Date.valueOf()
méthode comme:Pas besoin d'ajouter ici les informations d'heure et de fuseau horaire car elles sont prises implicitement.
Voir LocalDate vers java.util.Date et vice versa la conversion la plus simple?
la source
java.sql.Date
est destiné à la couche de base de données, JDBC, JPA. La couche Web (ou toute application client) doit absolument être exempte de toute dépendancejava.sql.*
.java.sql.Date
est justejava.util.Date
avec son temps défini,00:00:00
mais le point de vue de la conception est qu'iljava.sql.*
n'est pas destiné à une couche avant avec laquelle les clients interagissent comme Servlets / JSP.java.util.Date
dans le côté Java etjava.sql.Timestamp
ou tout ce qui est applicablejava.sql.*
dans le côté JDBC .java.sql.*
classes seront une dépendance distincte.java.time a l'interface temporelle que vous pouvez utiliser pour créer des objets instantanés à partir de la plupart des classes de temps. Instant représente les millisecondes sur la chronologie de l'époque - la référence de base pour toutes les autres dates et heures.
Nous devons convertir la date en un ZonedDateTime, avec une heure et une zone, pour effectuer la conversion:
la source
Pour créer un java.util.Date à partir d'un java.time.LocalDate , vous devez
Le code pourrait ressembler à ceci:
la source
toEpochSecond
est héritée dejava.time.chrono.ChronoZonedDateTime
. Voir docs.oracle.com/javase/8/docs/api/java/time/chrono/…Cela fonctionne pour moi:
https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#toString--
la source
Solution Kotlin:
1) Collez cette fonction d'extension quelque part.
2) Utilisez-le et ne revenez plus sur Google.
la source
la source
Facile
la source
la source