Javaで年・月・日から日付を取得する3つの方法(LocalDate、GregorianCalendar、SimpleDateFormat)
Javaでは、年・月・日の値から日付オブジェクトを作成する方法がいくつかあります。この記事では、代表的な3つの手法——java.time.LocalDateクラスのof()メソッド、java.util.GregorianCalendarクラス、そしてSimpleDateFormatクラス——の使い方を、サンプルコードと実行結果とともにわかりやすく解説します。
1. LocalDateクラスのof()メソッドを使う
Java 8以降で導入された日時API(Date-Time API)に含まれるjava.time.LocalDateクラスのof()メソッドは、年、月、日を引数として受け取り、その日付を表すLocalDateオブジェクトを生成して返します。スレッドセーフで直感的なAPIのため、現在のJava開発では最も推奨されるモダンな方法です。
サンプルコード
import java.time.LocalDate;
public class Test {
public static void main(String[] args) {
// 年、月、日を指定してLocalDateオブジェクトを生成
LocalDate date = LocalDate.of(2014, 9, 11);
System.out.println("日付の値: " + date);
}
}
実行結果
日付の値: 2014-09-11
2. GregorianCalendarクラスを使う
java.util.GregorianCalendarクラスは、従来から使われているカレンダー操作用のクラスです。年、月、日の値を受け取るコンストラクタがあり、それらの日付を表すCalendarオブジェクトを生成できます。なお、月の値は0始まり(1月=0)である点に注意が必要です。
サンプルコード
import java.util.*;
class Test {
public static void main(String args[]) {
// カレンダーオブジェクトを生成
Calendar cal = new GregorianCalendar(2020, 07, 18);
int day = cal.get(Calendar.DAY_OF_MONTH);
int month = cal.get(Calendar.MONTH);
int year = cal.get(Calendar.YEAR);
System.out.println("日: " + day);
System.out.println("月: " + month);
System.out.println("年: " + year);
}
}
実行結果
日: 18 月: 7 年: 2020
3. SimpleDateFormatクラスを使う
java.text.SimpleDateFormatクラスは、文字列とDateオブジェクトを相互に変換するためのクラスです。コンストラクタに希望する日付フォーマットを表す文字列を渡してインスタンス化し、parse()メソッドを使って文字列をDateオブジェクトに変換(パース)します。手順は以下の通りです。
- 目的のフォーマット文字列を渡してSimpleDateFormatクラスをインスタンス化する
- parse()メソッドで日付文字列をパースし、Dateオブジェクトに変換する
サンプルコード
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Sample {
public static void main(String args[]) throws ParseException {
String date_string = "2007-25-06";
// SimpleDateFormatクラスをインスタンス化
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-dd-MM");
// 文字列をDateオブジェクトにパース
Date date = formatter.parse(date_string);
System.out.println("日付の値: " + date);
}
}
実行結果
日付の値: Mon Jun 25 00:00:00 IST 2007
まとめ
新規プロジェクトでは、スレッドセーフで扱いやすいLocalDate.of()メソッドの使用が推奨されます。一方、レガシーコードの保守や既存システムとの互換性が必要なケースでは、GregorianCalendarやSimpleDateFormatも依然として有効な選択肢です。それぞれの特徴を理解した上で、用途に合った方法を選びましょう。
-
Swiftで現在の日付と時刻を取得する方法(UTC・ローカル時刻対応)
日付や時刻の処理は、プログラミング初心者がつまずきやすいポイントのひとつです。ほとんどのアプリでは現在の日付を取得する必要があり、予約管理、ログ記録、期限チェックなど、多くの機能がこの情報に依存しています。 本記事では、Swiftを使ってiOSアプリで現在の日付と時刻を取得する基本的な方法を解説します。具体的には、UTC(協定世界時)の時刻と、デバイスのタイムゾーンに基づく現地時刻の2パターンを紹介します。 UTC(協定世界時)の現在時刻を取得する UTCの時刻を取得したい場合は、Playgroundに以下のコードを貼り付けて実行してください。わずか2行で完了します。 let utcDate
-
AndroidでOffsetDateTime APIクラスを使って月の日付・年間通算日・曜日を取得する方法
このチュートリアルでは、java.timeパッケージのOffsetDateTime APIクラスを使用して、Androidアプリで「月の日(日付)」「年間通算日」「曜日」を取得して画面に表示する方法を解説します。 OffsetDateTimeクラスとは OffsetDateTimeは、Java 8で導入された新しい日時API(JSR-310)の一部で、UTCからのオフセット情報(例:+09:00)を含んだ日付と時刻を表すクラスです。タイムゾーンのオフセットを考慮した正確な日時処理が必要な場合に便利で、getDayOfWeek()、getDayOfMonth()、getDayOfYear()な