130

データベースにサーバーに依存しない日時を設定しようとしていますが、そのためのベスト プラクティスは UTC DateTime を設定することだと思います。私の db サーバーは Cassandra であり、Java 用の db ドライバーは Date 型のみを認識します。

私のコードで新しい Java 8 ZonedDateTime を使用して UTC now ( ZonedDateTime.now(ZoneOffset.UTC)) を取得していると仮定すると、この ZonedDateTime インスタンスを「レガシー」Date クラスに変換するにはどうすればよいでしょうか?

4

9 に答える 9

89
于 2015-08-28T23:07:12.773 に答える
1

これは、 Java 8 以降に組み込まれたjava.timeクラスを使用して行うことができます。

ZonedDateTime temporal = ...
long epochSecond = temporal.getLong(INSTANT_SECONDS);
int nanoOfSecond = temporal.get(NANO_OF_SECOND);
Date date = new Date(epochSecond * 1000 + nanoOfSecond / 1000000);
于 2015-08-28T15:29:03.457 に答える