2017-02-26 10 views
1

サブマイクロ秒から秒までの時間間隔を表現するには、クラスjava.time.Durationのようなものを使用する必要があります。しかし、Android Studioは私にこのオプションを提供していません。Androidのjava.time.Durationに相当するものは何ですか?

私はfloatを使用してすべてを秒として表現できると思いますが、これはあまり直感的ではありません。

これらの間隔は実際のタイムラインには関連付けられていません。これらの間隔はちょうどよい間隔です。

+0

多分 'javax.xml.datatype.Duration'ですか?または単にJodaTimeをインポートする –

+0

'java.time'ライブラリはJava 8でのみ有効です。最後にチェックしたAndroidはJava 7までしか使用できません。サードパーティのライブラリでこの効果を得ることができますジョーダタイムのように。 – Makoto

+0

@Makotoあなたの知識を更新したいかもしれません:) https://developer.android.com/guide/platform/j8-jack.html –

答えて

0

java.timeライブラリにアクセスできないので、JodaTimeライブラリをインポートして、そこからdurationクラスを使用すると役立つことがあります。 IntervalReadableDurationのクラスを収集することができますが、明示的にはどちらもgetSeconds()メソッドを提供するものではありません。

上記のクラスを使用して期間を保存することができれば、より直感的にミリ秒を1秒に変換する静的クラスを作成することができます。

float durationInSeconds MyTime.milliToSeconds(myDuration.getMillis()) 
+0

[Joda-Time](http://www.joda.org/joda-time/)プロジェクトは現在[メンテナンスモード](https://en.wikipedia.org/wiki/Maintenance_mode)で、 [java.time](http://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html)のクラスを参照してください。 –

2

バックポート

は、Java 6 & 7からback-port of much of java.time参照してください、とそのadaptation for Android。以下の詳細を参照してください。

バックポートには、org.threeten.bp.Durationクラスが含まれています。 java.timeについて


java.timeフレームワークは、Java 8に組み込まれており、後にされています。これらのクラスは、java.util.DateCalendar、& SimpleDateFormatなど、面倒な古いlegacy日時クラスに取って代わります。

maintenance modeにあるJoda-Timeプロジェクトは、java.timeクラスへの移行を推奨しています。

詳しくはOracle Tutorialをご覧ください。そして、多くの例と説明のためにStack Overflowを検索してください。仕様はJSR 310です。

ここで、java.timeクラスを取得するには?

  • Java SE 8SE 9以降
    • 内蔵しています。
    • バンドルされた実装の標準Java APIの一部です。
    • Java 9には、いくつかのマイナーな機能と修正が加えられています。
  • Java SE 6SE 7
    • java.time機能の多くはThreeTen-BackportのJava 6 & 7に戻って、移植されます。
  • Android
      ThreeTenABP
    • プロジェクトは、具体的にはAndroid用(上記)ThreeTen-バックポートを適応させます。
    • How to use ThreeTenABP…を参照してください。
+1

清算してくれてありがとう;)同じ形式のこれらの「シンプルな」日時計の質問に繰り返し答えるのはうんざりです。 –

関連する問題