Javaには、これまでに直接関連する多くのクラスがあります。最も一般的に使用されるものは、java.utilパッケージの日付とカレンダーです。フォーマットを使用する必要がある場合は、java.text.simpledateformatも使用します。
まず第一に、日付とカレンダーが実際に使用するのが少し厄介であると不平を言っておきましょう。最初に使用したとき、私はそれに慣れていませんでしたが、日付とカレンダーのクラスの間に特定の使用法と違いを常に伝えることができませんでした。
さらに、カレンダークラスセットメソッドには、日付を設定する際に何らかの反人間性があります。月を設定する場合、常にそれを補う必要があります。たとえば、2018年1月6日に設定する場合は、1月はここで0で表されるため、2018、0、6に設定する必要があります。
カレンダーcal = calendar.getInstance(); cal.set(2018、0、8);
具体的な理由から、こちらの答えを参照してください:StackOverFlow:なぜJava Calendarの1月の月0があるのですか?
とにかく、私はそれを我慢できません。 。
数日前、2つの日付に基づいて年齢を計算するという単純な要件がありました。私はインターネットをチェックし、困難な日付とカレンダーのクラスを直接放棄し、Java.Time.LocalDateを直接使用しました。これ以上苦労せずに、コードをアップロードするだけです。
Import java.time.localdate; public class testlocaldate {public static void main(string [] args){localdate date1 = localdate.of(2018、1、6); localdate date2 = localdate.of(1991、1、3); int age = date2.until(date1).getyears(); system.out.println( "youch you" + age + "yeg gry"); }}出力結果:
あなたは27歳です。
日付クラスとカレンダークラスの間のわずかに複雑で圧倒的な相互変換コールは放棄されており、コードも非常に明確です。とても快適ではありませんか?
Java.timeはJava 8で新しく導入された日付と時刻のライブラリです。次の方法はすべてJava.timeパッケージにあります。
このコードが時間差をシンプルでさわやかな方法でどのように計算するかを見てみましょう。
まず第一に、Localdateは不変のクラス(不変のクラス)です。そのため、文字列クラスのように、新しいオブジェクトを使用する必要はありません(?)
次に、LocalDateクラスが日付を設定するために使用される方法があります。
(int year、month month、int dayofmonth)のpublic static localdate(int year、int month、int dayofmonth)のpublic static localdate)
合計3つの過負荷の方法があり、そのうち2つはここにリストされています。最初の月クラスは、1月、11月など、月の英語名を含む列挙タイプです。
2つ目は、今年、月、日の通常の設定です。良いニュースは、ここの月が1から始まるということです。つまり、1つを手動で差し引く必要がなくなりました。 ! !
以下は、LocalDateクラスが日付を比較するために使用するまでの時間です。
公共期間まで(Chronololocaldate EndDateExclusive)
この方法は、タイプ期間のオブジェクトを返します。
期間は、「2年3か月、4日」のような形状の期間間隔を表します。次のGetYearsメソッドと呼ばれるメソッドは、The Perio Classに属します。
最後に、期間クラスで時間間隔を取得する方法をいくつか見てみましょう。
public intyears()public intmonths()public int getDays()
これらの3つの方法は、それぞれ年間、月、日間隔を取得するために使用されます。はい、それはとても簡単です。
要約します
上記は、編集者が導入したJavaの日付に基づいてLocalDateを使用して年齢を計算する実装方法です。私はそれが誰にでも役立つことを願っています。ご不明な点がございましたら、メッセージを残してください。編集者は、すべての人に時間内に返信します。