2017-03-12 3 views
0

私の質問は簡単です:Java 8の日付と時刻をクラスTimer(java.util.Timer)で使用することは可能ですか?日付と時刻のあるタイマーJava 8

Timer timer = new Timer(); 
timer.schedule(TimerTask task, Date time) 

この場合、このクラスはDateを使用しますが、LocalTime、LocalDate、LocalDateTimeの解決策はありますか?

+3

を掲載。しかし、とにかく、日付は(インスタント)からのメソッドを持っています。 –

+0

なぜタイマーを避けるべきですか?ありがとう – Braisly

+4

* Javaの同時実行性*に詳しく書かれているいくつかの理由から、精度、実行時例外の処理の悪さ、制御の欠如を減らすことができる単一スレッド。 –

答えて

1

java 8でこれを行うことはできますか?

Timer timer = new Timer(); 
timer.schedule(task, time); 

はい、とすぐに時間がjava.util.Date

あるとして、我々は LOCALDATEにLocalTimeのような新しいタイムAPI機能を使用してJava 8にタイマーをスケジュールすることができますか?

いいえ、直接ではありませんが、これらのクラスにはmethodsがあります。 JB Nizetとして

java.util.Date d = new SimpleDateFormat("yyyy-MM-dd").parse(localDate.toString()); 

あなたはタイマーを回避し、そして最初の場所でScheduledExecutorServiceを使用する必要がありますhere

+0

質問のコメントに記載されているように、DateクラスにはInstantを使用してDateを作成するためのメソッドがあります。これは、SimpleDateFormatを使用して文字列を解析するよりも優れています。 –

1

いいえ、できません。さらにそれを使用することは推奨されません(詳細はhereを参照してください)。代わりにScheduledExecutorServiceを使用できます。an exampleです。

java8のリリースではなく

java8はそう時間操作

のための新しいAPIをもたらしている、それはあそこ実行している古い実装のためのひどい互換性の問題となり、java.util.Dateクラスに影響を与えていない