2017.05.11

現在日時の各要素を取得

現在日時の各要素を取得

日時を操作できるCalendarクラス

Javaには日付・時刻が操作できるCalendarクラスがあります。

ここでは、現在の日付と時刻を取得して、各要素(年、月、日、時、分、秒、曜日)毎に取得する方法を紹介しています。

具体的には、以下のメソッドを使って現在日時の各要素を取得します。

Calendar.getInstanceメソッド

public static Calendar getInstance()
・デフォルトのタイムゾーンおよびロケールを使用してカレンダを取得

  パラメータ なし

  戻り値     デフォルトロケールを持つデフォルトタイムゾーンの現在時刻に基づいたCalendar

Calendar.getメソッド

public int Calendar get( int field )
・指定されたカレンダフィールドの値を返す

  パラメータ field     : フィールド

  戻り値     カレンダフィールド値
フィールド 概要
static int ALL_STYLES 「January」や「Jan」などのすべてのスタイルで名前を示す、getDisplayNames のスタイル指示子
static int AM 真夜中から正午の前までの時間を示す AM_PM フィールドの値
static int AM_PM get および set のためのフィールド値で、HOUR が正午より前であるかあとであるかを示す
static int APRIL グレゴリオ暦とユリウス暦の年の 4 番目の月を示す MONTH フィールドの値
protected boolean areFieldsSet fields[] が現在設定されている時刻と同期をとっている場合は true
static int AUGUST グレゴリオ暦とユリウス暦の年の 8 番目の月を示す MONTH フィールドの値
static int DATE get および set のためのフィールド値で、月の日を示す
static int DAY_OF_MONTH get および set のためのフィールド値で、月の日を示す
static int DAY_OF_WEEK get および set のためのフィールド値で、曜日を表す
static int DAY_OF_WEEK_IN_MONTH get および set のためのフィールド値で、現在の月の何度目の曜日かを示す
static int DAY_OF_YEAR get および set のためのフィールド値で、現在の年の何日目かを示す
static int DECEMBER グレゴリオ暦とユリウス暦の年の 12 番目の月を示す MONTH フィールドの値
static int DST_OFFSET get および set のためのフィールド値
static int ERA get および set のためのフィールド値で、ユリウス暦の AD または BC などの年代を示す
static int FEBRUARY グレゴリオ暦とユリウス暦の年の 2 番目の月を示す MONTH フィールドの値
static int FIELD_COUNT get および set によって識別される重複しないフィールドの数を示す
protected int[] fields このカレンダで現在設定されている時刻に対するカレンダフィールド値
static int FRIDAY 金曜日を示す DAY_OF_WEEK フィールドの値
static int HOUR get および set のためのフィールド値で、午前または午後の何時かを示す
static int HOUR_OF_DAY get および set のためのフィールド値で、時刻を示す
protected boolean[] isSet 指定されたカレンダフィールドがカレンダで設定されているかどうかを示すフラグ
protected boolean isTimeSet time の値が有効である場合は true
static int JANUARY グレゴリオ暦とユリウス暦の年の最初の月を示す MONTH フィールドの値
static int JULY グレゴリオ暦とユリウス暦の年の 7 番目の月を示す MONTH フィールドの値
static int JUNE グレゴリオ暦とユリウス暦の年の 6 番目の月を示す MONTH フィールドの値
static int LONG 「January」のような長い名前を示す getDisplayName および getDisplayNames のスタイル指示子
static int MARCH グレゴリオ暦とユリウス暦の年の 3 番目の月を示す MONTH フィールドの値
static int MAY グレゴリオ暦とユリウス暦の年の 5 番目の月を示す MONTH フィールドの値
static int MILLISECOND get および set のためのフィールド値で、ミリ秒を示す
static int MINUTE get および set のためのフィールド値で、分を示す
static int MONDAY 月曜日を示す DAY_OF_WEEK フィールドの値
static int MONTH get および set のための、月を示すフィールド値
static int NOVEMBER グレゴリオ暦とユリウス暦の年の 11 番目の月を示す MONTH フィールドの値
static int OCTOBER グレゴリオ暦とユリウス暦の年の 10 番目の月を示す MONTH フィールドの値
static int PM 正午から真夜中の前までの時間を示す AM_PM フィールドの値
static int SATURDAY 土曜日を示す DAY_OF_WEEK フィールドの値
static int SECOND get および set のためのフィールド値で、秒を示す
static int SEPTEMBER グレゴリオ暦とユリウス暦の年の 9 番目の月を示す MONTH フィールドの値
static int SHORT 「Jan」のような短い名前を示す getDisplayName および getDisplayNames のスタイル指示子です
static int SUNDAY 日曜日を示す DAY_OF_WEEK フィールドの値
static int THURSDAY 木曜日を示す DAY_OF_WEEK フィールドの値
protected long time このカレンダで現在設定されている時刻
static int TUESDAY 火曜日を示す DAY_OF_WEEK フィールドの値
static int UNDECIMBER 13 番目の月を示す MONTH フィールドの値
static int WEDNESDAY 水曜日を示す DAY_OF_WEEK フィールドの値
static int WEEK_OF_MONTH get および set のためのフィールド値で、現在の月の何週目かを示す
static int WEEK_OF_YEAR get および set のためのフィールド値で、現在の年の何週目かを示す
static int YEAR get および set のための、年を示すフィールド値
static int ZONE_OFFSET get および set のためのフィールド値

Javaソースコード

以下は、Calendarクラスを使った、現在の年月日を表示するプログラムです。

CalendarSample1.java

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
import java.util.Calendar;

public class CalendarSample1 {
	public static void main(String[] args) {
		int year, month, day;		// 年月日

		// オブジェクトを取得
		Calendar datenow = Calendar.getInstance();
		// 年
		year = datenow.get( datenow.YEAR );
		// 月
		month = datenow.get( datenow.MONTH ) + 1;
		// 日
		day = datenow.get( datenow.DATE );

		// 結果の表示
		System.out.println( year + "年" + month + "月" + day + "日" );
	}
}

コンパイル ソースコードが「ANSI」の場合

C:\talavax\javasample>javac -encoding sjis CalendarSample1.java

コンパイル ソースコードが「UTF-8」の場合

C:\talavax\javasample>javac CalendarSample1.java

実行

C:\talavax\javasample>java CalendarSample1

実行結果

2017年5月11日

実行時の年月日を表示します。

Javaソースコードの解説

ここからは、このソースコードを上から順番に解説していきます。

001
import java.util.Calendar;

「java.util」パッケージにあるCalendarクラスを使うための記述です。 この記述により、Calenderクラスが利用できるようになります。

003
public class CalendarSample1 {

クラス名を、CalendarSample1としています。

004
	public static void main(String[] args) {

このmainメソッドからプログラムを実行します。

005
		int year, month, day;		// 年月日

年月日を格納するための変数を宣言しています。年/月/日をそれぞれint型にしています。

007
008
		// オブジェクトを取得
		Calendar datenow = Calendar.getInstance();

デフォルトのロケール、タイムゾーンを持つCalendarオブジェクトdatenowを生成します。

009
010
011
012
013
014
		// 年
		year = datenow.get( datenow.YEAR );
		// 月
		month = datenow.get( datenow.MONTH ) + 1;
		// 日
		day = datenow.get( datenow.DATE );

Calendarクラスのgetメソッドで、年/月/日を取得しています。getメソッドに与えるカレンダフィールドの値で、取得する値を変えることができます。このサンプルプログラムでは、YEAR/MONTH/DATEで年月日を取得しています。

12行目で取得した月の値に1を足しているのは、MONTHで取得する値の範囲が0~11の値を返すためです。1~12月にするために1を足しています。

016
017
		// 結果の表示
		System.out.println( year + "年" + month + "月" + day + "日" );

結果を表示しています。

年月日以外の要素、時間はHOUR、分はMINUTE、秒はSECONDで取得することができます。

以上です。

関連コンテンツ

日時の操作を行うDateクラスについて解説しています。

2020.04.22

現在の日時をミリ秒(1/1000秒)で取得する方法を解説します。

2020.04.22

現在日時をCalendarクラスで取得してコンソール出力する方法を紹介します。

2017.05.11

生まれた日から現在の年齢を求めるプログラムを作成してみませんか?

2015.12.15

タイムゾーンのない日付を取得する方法を説明しています。

2021.12.21

Javaには現在の時刻を取得する機能があります。この機能を使ってプログラム処理にかかる時間を測ったことありますか?

2015.12.16

Javaのmainメソッドで受け取るパラメータについて解説しています。

2017.09.26

mainメソッドで受け取るパラメータの数の取得の仕方について解説しています。

2019.05.14

変数やクラスに格納されている値をコンソール出力する方法は?

2020.03.23

プログラムの最初に実行されるメソッドは?

2022.12.13

プログラミングで使う変数って何?

2020.03.23

Javaのプログラムを書いてみませんか?プログラムの書き方をくわしく説明しています。

2020.03.23

「Javaソースコード」から実行可能な「オブジェクトコード」に変換する方法をくわしく説明しています。

2020.03.23

Javaのプログラムを作ってみませんか?プログラミングに必要なものの用意から実行までを説明しています。

2020.03.23

Javaの学習に役立つソースコードを多数紹介しています。是非、ご覧ください。

2022.09.10

Swingパッケージを使ってグラフィック表示を行う方法を解説しています。

2020.03.23

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

繰り返し処理を使ったJavaのソースコードサンプルを紹介しています。

2020.03.23

配列を使うJavaソースコードを多数紹介しています。

2021.05.18

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

三角形、台形、円などいろいろな図形の面積を計算するプログラムを紹介しています。詳しくは、記事をご覧ください。

2021.05.18

StringクラスとStringBuilderクラスを利用したプログラミングの仕方を紹介しています。

2016.12.16

Javaを使った簡単な応用プログラム(生年月日から年齢を計算プログラムなど)を紹介しています。

2022.07.07

プログラミング、ITに関する用語をまとめています。

2022.10.17

日本で使われてきた伝統文様「和柄」について解説しています。

2022.07.27

プログラミング言語とは?種類や特徴について説明しています。

2022.08.03

Javaプログラムの構成について解説しています。詳しくは、こちらをご覧ください。

2020.03.23

メソッドの定義方法を詳しく解説しています。Javaのサンプルソースコードを使った説明もあります。

2020.03.23

オブジェクト指向の考え方を、Javaのソースコードを使って詳しく解説しています。興味のある方は、是非ご覧ください。

2022.09.02

「ゆるゆるプログラム」のコンテンツを紹介しています。興味のある方はこの記事をご覧ください。

2020.03.23

西暦と和暦を対応した表を掲載しています。興味のある方は、ご覧ください。

2020.03.23

西暦を与えて閏年か平年かを判定するプログラムを紹介しています。

2019.09.28

広告