AsakusaFW & Tsurugi Advent Calendar 2021の21日目です。
アドベントカレンダー14日目で、AsakusaFWのDate・DateTimeとJava8の日付時刻API(java.time)のLocalDate・LocalDateTimeとを変換する方法について書きました。(地道にgetYear()やgetMonth()・getDay()などを使う方法)
しかし、AsakusaFWのDateは基準日からの経過日数(エポック日)、DateTimeは基準日からの経過秒数(エポック秒)で保持しており、個別にgetYear()・getMonth()・getDay()を呼び出すのは、中で変換(割り算)が行われるため、若干不利です。(一方、LocalDateやLocalDateTimeは個別のyear・month・day等で保持しています)
で、LocalDateやLocalDateTimeもエポック日やエポック秒に変換するメソッドを持っているので、それを使う方法も良さそうです。
ただし、AsakusaFWの基準日は西暦1年で、日付時刻APIの基準日は西暦1970年なので、その差は埋める必要があります。コード上のマジックナンバーになっちゃいますけど、それくらいは仕方ないですよね(笑)