7

Joda Instant は、1970 年 1 月 1 日からのミリ秒数を格納するという点で Unix タイムスタンプに似ていることを理解しています。したがって、これを Android SQLite データベースに INTEGER として挿入したいと思います。しかし、私のアプリでは Joda LocalDate を使用しているため、LocalDate をインスタントに変換する必要があり、その逆も同様です。

誰でも方法を教えてもらえますか?

4

1 に答える 1

8

を に変換するLocalDateにはInstant、時刻とタイムゾーンが必要です。このクラスLocalDateはメソッドtoDateTime()を提供するため、この例を使用して必要に応じて調整できます。

LocalDate date = new LocalDate();
LocalTime time = LocalTime.MIDNIGHT;
DateTimeZone zone = DateTimeZone.getDefault();
Instant instant = date.toDateTime(time, zone).toInstant();

逆方向にもtimezone が必要です。

Instant instant = Instant.now();
DateTimeZone zone = DateTimeZone.getDefault();
LocalDate date = instant.toDateTime(zone).toLocalDate();

Joda-Time (システム タイム ゾーンを意味する) でゾーン引数を省略することは可能ですが、タイムゾーンの依存関係をより明確にするために明示的に指定することをお勧めします。同じ瞬間/瞬間が、世界中のさまざまな日付に関連している可能性があります (一部の場所での午前 0 時の変更や国際日付変更線をまたぐため)。

于 2015-03-11T15:06:05.327 に答える