1

AndroidでJava 8のjava.timeを使用するこのライブラリを見つけました。私の TimePickerDialog で時間を尋ねた後、Date オブジェクト (ダイアログからの時間) を含む HTTP 要求をサーバーに送信する必要があります。次の形式で:"YYYY-MM-DDTHH:MM:SS+HH:MM" 通常のクラス (Calendar 、Date、SimpleDateFormat)、しかししばらくして私はあきらめてよりクリーンなソリューションを探し、Java 8のZonedDateTime クラスを見つけました。 ZonedDateTime.now()、次のスタック トレースを取得します。

org.threeten.bp.zone.ZoneRulesException: No time-zone data files registered
  at org.threeten.bp.zone.ZoneRulesProvider.getProvider(ZoneRulesProvider.java:176)
  at org.threeten.bp.zone.ZoneRulesProvider.getRules(ZoneRulesProvider.java:133)
  at org.threeten.bp.ZoneRegion.ofId(ZoneRegion.java:143)
  at org.threeten.bp.ZoneId.of(ZoneId.java:357)
  at org.threeten.bp.ZoneId.of(ZoneId.java:285)
  at org.threeten.bp.ZoneId.systemDefault(ZoneId.java:244)
  at org.threeten.bp.Clock.systemDefaultZone(Clock.java:137)
  at org.threeten.bp.ZonedDateTime.now(ZonedDateTime.java:168)
  at eu.arrowhead.arrowheaddemo.ReservationsActivity.onTimeSet(ReservationsActivity.java:162)
  at eu.arrowhead.arrowheaddemo.TimePickerFragment.onTimeSet(TimePickerFragment.java:56)
  at android.app.TimePickerDialog.onClick(TimePickerDialog.java:141)
  at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:164)
  at android.os.Handler.dispatchMessage(Handler.java:102)
  at android.os.Looper.loop(Looper.java:154)
  at android.app.ActivityThread.main(ActivityThread.java:6077)
  at java.lang.reflect.Method.invoke(Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

私はAndroidThreeTen.init(this);自分のアプリケーション クラス (onCreate 内) のドキュメントに従って行ったので、何が問題の原因なのかわかりません。

おまけの質問: 機能するようになり、ZonedDateTime オブジェクトで送信したい日付を取得したら、どうすればそれをシンプルに変換できjava.util.Dateますか? 事前にどうもありがとうございました。

EDIT : init の証明:

public class MyApplication extends Application{

    @Override
    public void onCreate() {
        super.onCreate();
        AndroidThreeTen.init(this);
    }
}

ちなみにAPIレベルは24です。

4

0 に答える 0