String date1 = “2017-04-06”;
String start = "2017-04";
String end = "2017-06";
java 计算data1是否在start和end之间。start和end即表示的是四月到六月
巴扎黑2017-04-18 10:55:56
Java8 についてはすでに誰かが言及しているようですが...しかし、この書き方は少しぎこちないです...誰もが基本的に同じ考えを持っています...
指定された開始時刻を今月の初日に変更する必要があります
指定された終了時刻を今月の末日に変更する必要があります
どう変更するかが鍵…Java 8で呼び出せる既製のAPIがある…パースする必要がない…初日から変更してもいいけど、判断が多い最後まで頑張ります
コードは以下のようになります。与えられた条件に従ってisBetweenメソッドを記述します
リーリー簡単な説明...
yyyy-mm Java8 には年と月の形式を処理するための新しいクラスがあります。これは YearMonth
です (これは TemporalAdjuster
実装クラスです) )、LocalDate
(Temporal
の実装クラス) の with メソッドによると、実際には Temporal
インターフェイスの with メソッドです。 , こちら Java8の新しい時刻APIの設計に伴い、withメソッドの署名は以下の通りですYearMonth
(它是一个TemporalAdjuster
的实现类),根据LocalDate
(它是一个Temporal
的实现类)的with方法,其实是Temporal
接口的with方法,这里涉及到Java8的新时间API的设计,with方法签名如下
含义即是:一个Temporal
对象可以根据一个TemporalAdjuster
对象进行调整
所以结合到上面写的代码,思路如下
随意取了当前时间LocalDate
A
把A根据传入的YearMonth
进行修改(调用with方法),即调整时间的年和月,得到时间B
把B再根据一个调整器TemporalAdjuster
(TemporalAdjusters.firstDayOfMonth
),调整时间的日,得到最后的时间
其实时间调整,在TemporalAdjusters
意味: Temporal
オブジェクトは TemporalAdjuster
オブジェクトに従って調整できるです
上で書いたコードと組み合わせると、アイデアは次のようになります
LocalDate
Aをランダムに取得しました🎜🎜
🎜🎜 YearMonth
で渡された値に従って A を変更します (with メソッドを呼び出します)。つまり、時刻の年と月を調整し、時刻 B を取得します🎜🎜
🎜🎜調整者 TemporalAdjuster
(TemporalAdjusters.firstDayOfMonth
) に従って B を入力し、時刻の日を調整し、最終時刻を取得します🎜🎜
🎜
🎜実際、一般的に使用される時間調整の多くは TemporalAdjusters
にカプセル化されています。また、このクラスはシンプルで簡単で使いやすいことに注目してください。
🎜最後に、以前に接続した Java 8 の新しい時間 API の関係をいくつか示します。これらの関係に従って、新しい時間 API が使いやすいだけでなく、その関係を確認することができます。とても強力です🎜
🎜🎜🎜🎜🎜PHP中文网2017-04-18 10:55:56
end は今月の最終日に変換する必要があります (例: 2017-06-30
)。
2017-06-30
;
如果格式确定为yyyy-mm
或yyyy-mm-dd
,那么用date.compareTo(start) >= 0 && date.compareTo(end) < 0
就可以了;
如果有不规范的格式,比如2017-4-6
yyyy-mm
または yyyy-mm-dd
であると判断された場合は、 date.compareTo(start) >= 0 && date を使用します。 .compareTo(end) <0
は問題ありません。
2017-4-6
などの非標準形式がある場合は、それを標準形式に変換するか、日付または長い形式 (日付は本質的に長いものです) に変換してから、比較する。 🎜🎜
🎜