Ihre Frage ist vage. Dies könnte Sie in die richtige Richtung weisen.
Wenn Sie mit "Zeitstempel" eine Anzahl von Millisekunden seit der Epoche von 1970 UTC, construct an Instant
gemeint. Diese Klasse repräsentiert einen Moment auf der Timeline in UTC mit einer Auflösung von Nanosekunden (feiner als Millisekunden).
Instant instant = Instant.ofEpochMilli(millis);
Holen Sie sich den aktuellen Moment.
Instant now = Instant.now();
Berechnen Sie drei Stunden.
Instant in3Hours = now.plus(3 , ChronoUnit.HOURS);
Sehen Sie, ob Ihr Moment zwischen jetzt und drei Stunden später liegt.
Boolean contained = ((! instant.isBefore(now)) && instant.isBefore(in3Hours));
Wenn Sie gemeint, Sie zu sehen ein Paar Momente vergleichen wollen, wenn die verstrichene Zeit weniger als 3 Stunden, eine Duration
verwenden. Diese Klasse repräsentiert eine Zeitspanne in Sekunden und Nanosekunden.
Instant earlierInstant = … ;
Instant laterInstant = … ;
Duration duration = Duration.between(earlierInstant , laterInstant);
if (duration.isNegative()) {
… handle error of unexpected data inputs where the second instant is *before* the first instant.
}
… else …
Boolean elapsedUnderThreeHours = (duration.compareTo(Duration.ofHours(3)) == -1);
Können Sie * an einem bestimmten Tag * erweitern? Timestamp haben nicht den Begriff "Tag", Sie brauchen auch eine Zeitzone. Was sollte passieren, wenn Sie in einer bestimmten Zeitzone den 7. August um 1 Uhr morgens und den 6. August um 23 Uhr abends haben? – Tunaki
Ah, natürlich sollte der Kommentar oben lesen * und 6. August 11PM * ... – Tunaki
long time1, time2. ((Zeit1 - Zeit2)/(60 * 60)) // Sekunden * Minuten. sollte das Stundenintervall zwischen ihnen erhalten –