exceptionfactory commented on a change in pull request #4781:
URL: https://github.com/apache/nifi/pull/4781#discussion_r564220393
##########
File path:
nifi-commons/nifi-record/src/main/java/org/apache/nifi/serialization/record/util/DataTypeUtils.java
##########
@@ -1085,6 +1087,28 @@ private static Object toEnum(Object value, EnumDataType
dataType, String fieldNa
throw new IllegalTypeConversionException("Cannot convert value [" +
value + "] of type " + value.getClass() + " to Date for field " + fieldName);
}
+ /**
+ * Converts a java.sql.Date object with 00:00:00 in local time zone
(typically coming from a java.sql.ResultSet)
+ * to UTC normalized form (storing epoch corresponding to UTC 00:00:00 on
the given day).
+ *
+ * @param date java.sql.Date with local time zone 00:00:00
+ * @return java.sql.Date with UTC 00:00:00
+ */
+ public static Date convertDateToUTC(Date date) {
+ return new
Date(date.toLocalDate().atStartOfDay(ZoneId.of("UTC")).toInstant().toEpochMilli());
+ }
+
+ /**
+ * Converts a java.sql.Date object with 00:00:00 in UTC
+ * to local time zone normalized form (storing epoch corresponding to
00:00:00 in local time zone on the given day).
+ *
+ * @param date java.sql.Date with UTC 00:00:00
+ * @return java.sql.Date with local time zone 00:00:00
+ */
+ public static Date convertDateToLocalTZ(Date date) {
+ return
Date.valueOf(Instant.ofEpochMilli(date.getTime()).atZone(ZoneId.of("UTC")).toLocalDate());
Review comment:
Thanks for the updated suggestion, breaking things out read much more
easily, and the `withZoneSameLocal()` method makes more sense now. Based on
that snippet, I would suggest just returning the final `Date` object instead of
declaring and returning.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]