Maison >Java >javaDidacticiel >Comment convertir les types « java.util.Date » en « java.time » ?

Comment convertir les types « java.util.Date » en « java.time » ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-05 19:05:02783parcourir

How to Convert `java.util.Date` to `java.time` Types?

Convertir java.util.Date en quel type « java.time » ?

Explication :

Le framework java.time fournit des classes de date et d'heure modernes et améliorées par rapport aux anciennes classes java.util. Ce framework offre plus de flexibilité, de précision et de fonctionnalités. Lorsque vous travaillez avec du code existant qui utilise toujours les types java.util, il est nécessaire de pouvoir effectuer des conversions entre les deux frameworks.

Options de conversion :

1 . De java.util.Date à java.time.Instant :

  • Instant représente un moment spécifique sur la chronologie UTC avec une précision de la nanoseconde.
  • Pour convertissez à partir de java.util.Date, utilisez la méthode .toInstant() sur l'objet Date :

    <code class="java">Instant instant = myUtilDate.toInstant();</code>

2. De java.util.Calendar à Instant :

  • Le calendrier suit en interne le temps en millisecondes à partir de l'époque.
  • Pour convertir à partir du calendrier, utilisez le .toInstant( ) méthode :

    <code class="java">Instant instant = myUtilCalendar.toInstant() ;</code>

    3. De java.util.GregorianCalendar à ZonedDateTime :

  • GregorianCalendar inclut des informations de fuseau horaire.
  • Pour convertir, convertissez Calendar en GregorianCalendar et utilisez .toZonedDateTime() méthode pour obtenir un ZonedDateTime :

    <code class="java">if (myUtilCalendar instanceof GregorianCalendar) {
      GregorianCalendar gregCal = (GregorianCalendar) myUtilCalendar;
      ZonedDateTime zdt = gregCal.toZonedDateTime();
    }</code>

4. De l'instantané aux autres types java.time :

  • OffsetDateTime : représente un point dans le temps avec un décalage par rapport à UTC (par exemple, "-04:00" pour l'heure de l'Est).
  • ZonedDateTime : représente un moment précis avec un fuseau horaire spécifique.
  • LocalDate : représente une date sans heure ni fuseau horaire.
  • LocalTime : représente une heure sans date ni heure. zone.
  • LocalDateTime : représente à la fois une date et une heure sans fuseau horaire (uniquement pour des approximations approximatives).

Conversions des types java.time vers java.util .Date :

  • Pour convertir d'Instant en Date, extrayez l'Instant puis appliquez .toInstant() à la Date :

    <code class="java">java.util.Date myUtilDate = java.util.Date.from(instant);</code>
  • Des conversions similaires peuvent être effectuées à partir de OffsetDateTime et ZonedDateTime.

Remarque :

Lors de la conversion des types java.time en types java.util, la précision peut être perdu car java.util.Date et java.util.Calendar ne gèrent que les millisecondes alors que les types java.time ont une précision de la nanoseconde.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn