String date1 = “2017-04-06”;String start = "2017-04";String end = "2017-06";java 计算data1是否在start和end之间。start和end即表示的是四月到六月
小伙看你根骨奇佳,潜力无限,来学PHP伐。
Java8 を使用していない場合:
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方法签名如下
YearMonth
TemporalAdjuster
LocalDate
Temporal
含义即是:一个Temporal对象可以根据一个TemporalAdjuster对象进行调整
所以结合到上面写的代码,思路如下
随意取了当前时间LocalDate A
把A根据传入的YearMonth进行修改(调用with方法),即调整时间的年和月,得到时间B
把B再根据一个调整器TemporalAdjuster(TemporalAdjusters.firstDayOfMonth),调整时间的日,得到最后的时间
TemporalAdjusters.firstDayOfMonth
其实时间调整,在TemporalAdjusters
TemporalAdjusters
意味: Temporal オブジェクトは TemporalAdjuster オブジェクトに従って調整できるです 上で書いたコードと組み合わせると、アイデアは次のようになります
Java8を使用している場合:
Java8 を使用していないが、Joda-time を使用している場合:
end は今月の最終日に変換する必要があります (例: 2017-06-30)。 2017-06-30;
2017-06-30
如果格式确定为yyyy-mm或yyyy-mm-dd,那么用date.compareTo(start) >= 0 && date.compareTo(end) < 0就可以了;
yyyy-mm
yyyy-mm-dd
date.compareTo(start) >= 0 && date.compareTo(end) < 0
如果有不规范的格式,比如2017-4-6
2017-4-6
date.compareTo(start) >= 0 && date を使用します。 .compareTo(end) は問題ありません。
Java8 を使用していない場合:
リーリー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 が使いやすいだけでなく、その関係を確認することができます。とても強力です🎜 🎜🎜🎜🎜🎜Java8を使用している場合:
リーリーJava8 を使用していないが、Joda-time を使用している場合:
リーリー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) は問題ありません。
2017-4-6
などの非標準形式がある場合は、それを標準形式に変換するか、日付または長い形式 (日付は本質的に長いものです) に変換してから、比較する。 🎜🎜 🎜