Java8のLocalDateTimeからDateへの変換は思いのほか、骨が折れる。。
DBfluteのJava8対応で日時項目が、LocalDateTime型としてentity生成されているので、調べたがそもそも使わないというのもありかもしれない。。
LocalDateTimeからDateへの変換 その1
LocalDateTime ldt = LocalDateTime.now(); Date d = Date.from(ldt.toInstant(ZoneId.systemDefault().getRules().getOffset(ldt)));
LocalDateTimeからDateへの変換 その2
ZonedDateTimeを間に挟むやり方。見やすくはなる。
LocalDateTime ldt = LocalDateTime.now(); ZonedDateTime zdt = ldt.atZone(ZoneId.systemDefault()); Date rd = Date.from(zdt.toInstant());
DateからLocalDateTimeへの変換
DateからLocalDateTimeへの変換は次のように書けます。
Date d; LocalDateTime ldt = LocalDateTime.ofInstant(d.toInstant(), ZoneId.systemDefault());