authorjapps/zerocode

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

Open

#268 建立於 2019年7月2日

在 GitHub 查看
 (2 留言) (0 反應) (0 負責人)Java (447 fork)auto 404
help wanted

倉庫指標

Star
 (1,010 star)
PR 合併指標
 (PR 指標待抓取)

描述

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!

貢獻者指南