ジャワで24時間文字列を比較します

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);

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=275856&siteId=1