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!

贡献者指南