こんにちは 朝、正午、午後、夕方の場合、異なる動作をするアプリケーションを作成したいと考えています。 今、私はいくつかの変数を時間ごとに設定したいと思っています 例:noon = 12:00 今、私はそれらと現在の時刻を比較して、それが朝かどうかを見て、正午12時まで現在を計算したい時間。 ここでは、日付の異なるいくつかの例を見てきましたが、時間単位で比較したいと思います。Javaで時間と時間の操作を比較する
答えて
joda時間hoursBetweenを使用することも、Javaカレンダークラスを使用することもできます。私はJodaTimeの使用をお勧めします。
のJava Calendarクラスを使用して:
Calendar future = Calendar.getInstance(); //future time future.set(Calendar.YEAR, 2011); future.set(Calendar.MONTH, 0); future.set(Calendar.DATE,27); future.set(Calendar.HOUR_OF_DAY,17); //get current time Calendar now = Calendar.getInstance(); //time difference between now and future in hours long hoursDiff = (future.getTimeInMillis() - now.getTimeInMillis())/(60 * 60 * 1000); System.out.println("Difference in hours is ="+hoursDiff);//prints 2 since it's 3 pm here
をこの日の光の節約に考慮し、ローカルタイムゾーンに対して比較しません。ジョダ時間hoursBetweenを使用して
:
DateTime futureDate = new DateTime(future.getTime()); DateTime current = new DateTime(now.getTime()); int difference = Hours.hoursBetween(current,futureDate).getHours(); System.out.println("Difference in hours is ="+difference);
GregorianCalendarを使用してこれを行うことができます。新しいGregorianCalendarを作成し、月、日、年を一定の値に設定します。興味のある時間帯、つまり正午の午前12時に時刻を設定します。今すぐgetTimeInMillis()とその値を格納します。後で、引数なしの別のGregorianCalendarを作成して現在の時刻を取得することができます。月、日、年をベンチマーク値と同じ定数値に設定してから、getTimeInMillis()を再度比較して、基準時刻の前、等しい、または後であるかどうかを確認します。
Calendar cal=GregorianCalendar.getInstance();
int hour = cal.get(Calendar.HOUR);
次に時間を比較します。
これは、ローカルタイムゾーンの
java.time
他の回答が正しかったが、時代遅れのクラスを使用し動作します。 java.util.Date
/.Calendar
クラスは、Java 8以降に組み込まれたjava.timeフレームワークによって置き換えられました。
LocalTime
クラスは、日付がなく時間帯がない時間帯を表します。
"morning"、 "afternoon"などの定義にいくつかの定数を設定します。実際の仕事では、私はenumを使用します。しかし、ここではデモ用に単純な変数を使用します。
LocalTime noon = LocalTime.of(12 , 0);
タイムゾーンは時刻を解釈するために重要です。時間帯は、特定の時間帯のコンテキストでのみ意味を持ちます。指定しない場合、JVMの現在のデフォルトタイムゾーンが自動的に自動的に適用されます。代わりに、常に明示的に希望/予想タイムゾーンを指定することを強くお勧めします。 ZonedDateTime
は、Instant
とタイムゾーン(ZoneId
)の組み合わせであると考えることができます。
ZoneId zoneId = ZoneId.of("America/Montreal");
ZonedDateTime now = ZonedDateTime.now(zoneId);
我々は、その割り当てられた時間帯に応じてZonedDateTime
からLocalTime
を抽出することができます。
LocalTime nowLocalTime = now.toLocalTime();
目標時間と比較してください。
Boolean isMorning = nowLocalTime.isBefore(noon);
秒の合計数とナノ秒単位で第二の分数として時間のスパンを表現するためにDuration
クラスを使用します。
ZonedDateTime todayNoon = now.adjustInto(noon);
Duration untilNoon = Duration.between(now , todayNoon);
Duration::toString
のデフォルトの出力はPT38M2S
三〇から八分2秒、ISO 8601の例で定義された形式の文字列です。
DurationをZonedDateTime
オブジェクトから取得すると、夏時間(DST)などの異常を正確に把握できます。むしろ一般的な24時間の計算を使用する場合はLocalTime
オブジェクトをDuration.between
に渡してください。
- 1. Javaでsysdateの時間と文字列の時間を比較する方法
- 2. ローカルNSDate時間とPST時間の営業時間を比較する
- 3. レールで時間を比較
- 4. javascriptでの比較時間
- 5. システム時間とユーザ入力時間を比較するPHP mysql
- 6. 時間はアンドロイドの時間ピッカーと比較する
- 7. VBAの時間を比較
- 8. DateTimeと24時間を比較する
- 9. 時間をMomentJSと比較する
- 10. 時間の比較(文字列と時間と実際の時間)
- 11. は時間を比較し
- 12. Androidサービス、時間を比較
- 13. 実行時間の比較
- 14. Dの時間比較D
- 15. 時間範囲の比較
- 16. Androidの比較時間
- 17. Excel時間の比較
- 18. SystemCの時間比較
- 19. IOTストリームのインジェスト時間と生成時間の比較
- 20. Tibcoで時間を比較するBW
- 21. 秒間のRails時間の比較
- 22. のjava:時刻/日付を比較し、時間差
- 23. 声明の時間を比較する
- 24. jQueryの時間を比較する
- 25. MySQL:BETWEENの時間を比較する
- 26. PHPの時間を比較する
- 27. awkは24時間データの時間フィールドを比較します
- 28. 時間の比較とvbの相違
- 29. 時間と評価のdatetimeの比較
- 30. 時間を現在の日付と時間と比較するには?