Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaのGregorianCalendarクラスで日付を出力する方法

```html

GregorianCalendarクラスとは

JavaのGregorianCalendarクラスは、標準的な暦体系をサポートするjava.utilパッケージのカレンダークラスで、ユリウス暦グレゴリオ暦の両方に対応しています。

GregorianCalendarのオブジェクトは、複数用意されたコンストラクタのいずれか、またはgetInstance()メソッドを使って生成できます。以下では、このクラスを使って日付を出力するさまざまな方法を具体例とともに解説します。

例1:年・月・日を指定してインスタンスを生成する

次の例では、コンストラクタに年・月・日の値を引数として渡し、GregorianCalendarオブジェクトを生成して日付を出力します。

import java.util.Calendar;
import java.util.GregorianCalendar;

public class Test {
    public static void main(String args[]) {
        // GregorianCalendarのインスタンス化
        GregorianCalendar cal = new GregorianCalendar(2018, 6, 27);
        System.out.println(cal);
        System.out.println("日付: " + cal.get(Calendar.DATE));
        System.out.println("月: " + cal.get(Calendar.MONTH));
        System.out.println("年: " + cal.get(Calendar.YEAR));
    }
}

実行結果:

java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Calcutta",offset=19800000,dstSavings=0,useDaylight=false,transitions=7,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=?,YEAR=2018,MONTH=6,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=27,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]
日付: 27
月: 6
年: 2018

注意点として、Calendar.MONTHで取得できる月の値は0から始まるため、出力される「6」は実際には7月を意味します。

例2:Locale(ロケール)を指定してインスタンスを生成する

次の例では、Localeオブジェクトをコンストラクタに渡してGregorianCalendarを生成し、そのロケール設定での日付を出力します。

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;

public class Test {
    public static void main(String args[]) {
        Locale locale = new Locale("en", "IN");
        // GregorianCalendarのインスタンス化
        GregorianCalendar cal = new GregorianCalendar(locale);
        System.out.println("日付: " + cal.get(Calendar.DATE));
        System.out.println("月: " + cal.get(Calendar.MONTH));
        System.out.println("年: " + cal.get(Calendar.YEAR));
    }
}

実行結果:

日付: 7
月: 10
年: 2020

例3:TimeZone(タイムゾーン)を指定してインスタンスを生成する

次の例では、TimeZoneオブジェクトをコンストラクタに渡してGregorianCalendarを生成し、そのタイムゾーンにおける日付を出力します。

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.TimeZone;

public class Test {
    public static void main(String args[]) {
        TimeZone timeZone = TimeZone.getTimeZone("GMT+5:30");
        // GregorianCalendarのインスタンス化
        GregorianCalendar cal = new GregorianCalendar(timeZone);
        System.out.println("日付: " + cal.get(Calendar.DATE));
        System.out.println("月: " + cal.get(Calendar.MONTH));
        System.out.println("年: " + cal.get(Calendar.YEAR));
    }
}

実行結果:

日付: 7
月: 10
年: 2020

例4:getInstance()メソッドでインスタンスを生成する

次の例では、getInstance()メソッドを使ってGregorianCalendarを取得し、システムのデフォルト設定に基づく現在の日付を出力します。

import java.util.Calendar;
import java.util.GregorianCalendar;

public class Test {
    public static void main(String args[]) {
        // GregorianCalendarのインスタンス化
        GregorianCalendar cal = (GregorianCalendar) GregorianCalendar.getInstance();
        System.out.println("日付: " + cal.get(Calendar.DATE));
        System.out.println("月: " + cal.get(Calendar.MONTH));
        System.out.println("年: " + cal.get(Calendar.YEAR));
    }
}

実行結果:

日付: 7
月: 10
年: 2020

まとめ

GregorianCalendarクラスでは、年・月・日の直接指定、LocaleやTimeZoneを指定した生成、getInstance()によるデフォルト生成など、目的に応じた柔軟なオブジェクト生成が可能です。用途に合わせて適切な方法を選択してください。なお、Java 8以降の環境では、より扱いやすい日付APIであるjava.timeパッケージ(LocalDateなど)の活用も検討するとよいでしょう。

  1. Javaのデフォルトメソッドを使ってダイヤモンド問題を解決する方法

    継承(Inheritance)とは 継承とは、あるクラスが別のクラスの性質(プロパティやメソッド)を受け継ぐ、2つのクラス間の関係のことです。この関係は extends キーワードを使って次のように定義します。 public class A extends B{ } 性質を受け継ぐ側のクラスは「サブクラス(子クラス)」、受け継がれる側のクラスは「スーパークラス(親クラス)」と呼ばれます。 継承が行われると、スーパークラスのメンバーのコピーがサブクラスのオブジェクト内に作成されます。そのため、サブクラスのオブジェクトを使えば、親クラスと子クラスの両方のメンバーにアクセスすることが可能です。 多重

  2. Javaのラッパークラスでプリミティブ型を変換する方法とディレクトリ操作の基本

    本記事では、Javaのラッパークラスの基本的な使い方と、java.nioパッケージのFilesクラスを利用したディレクトリの作成・一覧表示・フィルタリングの方法について、サンプルコード付きで解説します。 ラッパークラスとは Javaには、java.langパッケージに「ラッパークラス」と呼ばれるクラス群が用意されています。これらのクラスのオブジェクトは、intやcharなどのプリミティブ型(基本データ型)の値を内部に包み込む(ラップする)役割を果たします。 ラッパークラスを利用することで、ArrayListやHashMapといったコレクションにプリミティブ型の値を格納できるようになります。また