Java Calender類の使用概要と使用例

5144 ワード

普段はいくつかのサイトを見ていると、現在の時間が表示されます。例えば、xx年xx月xx日xx時xx分xx秒です。実際の開発過程では、日付と時間の計算にも関連します。Javaでは専門的な種類のCalendarを提供して、日付と時間を処理します。
次に、Calendar類の使用シーンと使い方について説明します。
1.Calendarのインスタンスを取得する
まず、Calendar類の定義を見ます。

public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar>
abstractと定義されているので、newによってCalendarクラスのインスタンスを作成することはできませんが、Calendarクラスは、種類の方法get Instance()を提供して、Calendarのインスタンスに戻ります。

public static Calendar getInstance()
{
 return createCalendar(TimeZone.getDefault(), Locale.getDefault(Locale.Category.FORMAT));
}
したがって、Calendarのインスタンスを取得するコードは、以下の通りである。

Calendar calendar = Calendar.getInstance();
2.現在時間の取得

package com.zwwhnly.springbootdemo;

import java.util.Calendar;

public class CalendarDemo {
 public static void main(String[] args) {
 Calendar calendar = Calendar.getInstance();

 int year = calendar.get(Calendar.YEAR);
 //        0   , 0~11    1~12 ,    +1
 int month = calendar.get(Calendar.MONTH) + 1;
 int day = calendar.get(Calendar.DAY_OF_MONTH);
 int hour = calendar.get(Calendar.HOUR_OF_DAY); // 24   
 int minute = calendar.get(Calendar.MINUTE);
 int second = calendar.get(Calendar.SECOND);

 System.out.println("   :" + year + " " + month + " " + day + " " + hour + " " + minute + " " + second + " ");
 }
}

実行結果:
今は2019年2月21日15時36分38秒です。
注意:月の下表は0から始まります。0~11はそれぞれ1~12月を表します。
3.設定時間
私たちは今時間を2019-02-21 23:59に設定したいと思います。
3.1(一括設定):

Calendar calendar = Calendar.getInstance();
calendar.set(2019, Calendar.FEBRUARY, 21, 23, 59, 59);

System.out.println(calendar.getTime());
3.2(それぞれ設定):

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2019);
calendar.set(Calendar.MONTH, Calendar.FEBRUARY);
calendar.set(Calendar.DAY_OF_MONTH, 21);
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);

System.out.println(calendar.getTime());
3.1と3.2の運転結果は以下の通りです。
Thu Feb 21:59 CST 2019
 4.時間計算
4.1秒を増やす
私達は3.1の基礎の上で1秒を増加して、それでは時間は2019-02-22 00:00であるべきです。

public static void main(String[] args) {
 Calendar calendar = Calendar.getInstance();
 calendar.set(2019, Calendar.FEBRUARY, 21, 23, 59, 59);
 calendar.add(Calendar.SECOND, 1);
 System.out.println(calendar.getTime());
}
実行結果:
Fri Feb 22 00:00 CST 2019
4.2増加月
まず私達は時間を2019-01-31に設定して、それからまず1ヶ月を増加して、更に2ヶ月増加します。

Calendar calendar = Calendar.getInstance();

calendar.set(2019, Calendar.JANUARY, 31);
System.out.println(calendar.getTime());
calendar.add(Calendar.MONTH, 1);
System.out.println(calendar.getTime());
calendar.add(Calendar.MONTH, 2);
System.out.println(calendar.getTime());

実行結果:
Thu Jan 31 15:58:03 CST 2019
Thu Feb 28 15:58:03 CST 2019
Sun Appr 28 15:58:03 CST 2019
注意事項:所在の月にその日付がない場合、2月に31日がない場合、帰るのは所在月の最後の日(2月28日)です。
5.拡張:ある月の最初の日と最後の日を取得する

package com.zwwhnly.springbootdemo;

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class CalendarDemo {
 public static void main(String[] args) {
 System.out.println(getFirstDayOfMonth(2019, 2));
 System.out.println(getLastDayOfMonth(2019, 2));

 System.out.println(getFirstDayOfMonth(2019, 3));
 System.out.println(getLastDayOfMonth(2019, 3));
 }

 public static String getLastDayOfMonth(int year, int month) {
 Calendar calendar = Calendar.getInstance();
 calendar.set(Calendar.YEAR, year);
 calendar.set(Calendar.MONTH, month - 1);
 calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DATE));

 return new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime());
 }

 public static String getFirstDayOfMonth(int year, int month) {
 Calendar calendar = Calendar.getInstance();
 calendar.set(Calendar.YEAR, year);
 calendar.set(Calendar.MONTH, month - 1);
 calendar.set(Calendar.DAY_OF_MONTH, calendar.getMinimum(Calendar.DATE));

 return new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime());
 }
}

実行結果:
2019-02-01
2019-02-28
2019-03-01
2019-03-31
6.参照リンク
JavaにおけるCalendar類の常用方法 Java Calender類の使用概要 java時間類Date、Calendar及び用法
 以上は小编が绍介したJava Calendar类の使用総括と使用例の详しい解统です。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。