shahaf:
私のような24時間の以下の文字列表現を持っている1423
し、1956
(タイムゾーン付き)現在の時刻がこのペアの間にある場合、私はチェックしたいと思います
私の現在のソリューションを使用して一日の時間と分を取得します
int h = Instant.now().atZone(ZoneId.systemDefault()).getHour()
int t = Instant.now().atZone(ZoneId.systemDefault()).getMinute()
数字から4桁の文字列を作成し、文字列比較を行います
私はすべての私の解決策好きではない、それを行うためのエレガントな方法は何ですか?
Eng.Fouad:
あなたはに時間の文字列表現に変換することができLocalTime
、次のように:
var formatter = DateTimeFormatter.ofPattern("HHmm");
var lowerTime = LocalTime.parse("1423", formatter);
var upperTime = LocalTime.parse("1956", formatter);
次に、あなたが使用することができますisAfter()
/ isBefore
それが間にあるかどうかを確認する方法を:
var nowTime = LocalTime.now(ZoneId.systemDefault());
boolean inBetween = nowTime.isAfter(lowerTime) && nowTime.isBefore(upperTime);