authorjapps/zerocode

Z - Zero-Timezone or Zulu-timezone - While Date comparison

Open

#268 aperta il 2 lug 2019

Vedi su GitHub
 (2 commenti) (0 reazioni) (0 assegnatari)Java (447 fork)auto 404
help wanted

Metriche repository

Star
 (1010 star)
Metriche merge PR
 (Metriche PR in attesa)

Descrizione

While doing Date comparison i.e. BEFORE or AFTER consider

$LOCAL.DATETIME.AFTER: $LOCAL.DATETIME.BEFORE:

Consider Z as explained in the subject.

Please read the attached PDF to this description. PDF file : Discussion around Z in Date - the PR.pdf

Precisely the suggested solution is also available in the PDF(PR).

public static LocalDateTime parseDate(String value) {
     try {
         ZonedDateTime zonedDateTime = ZonedDateTime.parse(value, DateTimeFormatter.ISO_DATE_TIME);
         return zonedDateTime.withZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime();
     } catch ( DateTimeParseException e ) {
         return LocalDateTime.parse(value, DateTimeFormatter.ISO_DATE_TIME);
     }
}

If

String value = "2019-06-15T11:21:53.211"; Then the effective LocalDateTime will be : 2019-06-15T11:21:53.211 (catch code is executed and returned. Note the time is returned as-it-is)

if

String value = "2019-06-15T11:21:53.211Z"; Then the effective LocalDateTime will be : 2019-06-15T12:21:53.211 (In this case - try code is executed n returned. Note- The time has 1hr difference)

The difference in time could be different depending on which timezone this code is executed.

@BartRobeyns , if you want to expand more on this, please go ahead!

Guida contributor