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

Javaで現在の日付と時刻を取得する4つの方法をサンプルコード付きで解説


Javaで現在の日付や時刻を取得する方法はいくつかあります。この記事では、代表的な4つの方法をサンプルコードと実行結果とともにわかりやすく解説します。

1. Dateクラスのコンストラクタを使用する

java.util.Dateクラスの引数なしのコンストラクタは、現在の日付と時刻を表すDateオブジェクトを返します。最も古典的でシンプルな方法です。

サンプルコード

import java.util.Date;
public class CreateDate {
   public static void main(String args[]) {
      Date date = new Date();
      System.out.print(date);
   }
}

実行結果

Thu Nov 05 20:04:57 IST 2020

出力される文字列の形式は、実行環境のロケールやタイムゾーン設定によって異なる場合がある点に注意してください。

2. LocalDateTimeクラスのnow()メソッドを使用する

Java 8で導入された日時API(java.timeパッケージ)に含まれるLocalDateTimeクラスのnow()メソッドは、現在の日付と時刻を表すオブジェクトを返します。

サンプルコード

import java.time.LocalDate;
import java.time.LocalDateTime;
public class CreateDateTime {
   public static void main(String args[]) {
      LocalDateTime date = LocalDateTime.now();
      System.out.println("Current Date and Time: "+date);
   }
}

実行結果

Current Date and Time: 2020-11-05T21:49:11.507

結果はISO-8601形式(yyyy-MM-ddTHH:mm:ss)で出力されるため、文字列としての可読性が高く、プログラム内での加工もしやすいのが特徴です。

3. CalendarクラスのgetInstance()メソッドを使用する

引数なしのgetInstance()メソッドは、現在の日付と時刻を表すCalendarオブジェクトを返します。さらにgetTime()メソッドを呼び出せば、Date型として取得することも可能です。

サンプルコード

import java.util.Calendar;
import java.util.Date;
public class CreateDateTime {
   public static void main(String[] args) {
      Calendar obj = Calendar.getInstance();
      Date date = obj.getTime();
      System.out.println("Current Date and time: "+date);
   }
}

実行結果

Current Date and time: Thu Nov 05 21:46:19 IST 2020

4. java.time.Clockクラスを使用する

java.time.Clockクラスを利用することでも、現在の日時を取得できます。systemUTC()メソッドでUTC基準のクロックを取得し、instant()メソッドで現在の瞬間を表すInstantオブジェクトを得られます。

サンプルコード

import java.time.Clock;
public class CreateDateTime {
   public static void main(String args[]) {
      Clock obj = Clock.systemUTC();
      System.out.println("Current date time: "+obj.instant());
   }
}

実行結果

Current date time: 2020-11-05T16:33:06.155Z

末尾の「Z」はUTC(協定世界時)を意味しています。テスト時に時刻を差し替えやすい設計ができるため、単体テストとの相性も良い方法です。

まとめ:どの方法を選ぶべきか?

既存のレガシーコードではDateクラスやCalendarクラスが使われていることも少なくありませんが、これらはミュータブル(変更可能)であるため、マルチスレッド環境での安全性に課題があります。Java 8以降の新規開発では、スレッドセーフで直感的に操作できるjava.timeパッケージ(LocalDateTimeなど)の使用が推奨されています。最も手軽なのはLocalDateTime.now()であり、表示形式を整えたい場合はDateTimeFormatterクラスと組み合わせると柔軟に対応できます。

  1. 【Android開発】アプリで現在の日付と時刻を表示する方法を解説

    この記事では、Androidアプリケーションで現在の日付と時刻を取得して画面に表示する方法を、ステップごとにわかりやすく解説します。JavaのDateFormatクラスを使えば、わずか数行のコードで実装できるので、初心者の方でも安心して取り組めます。完成イメージアプリを起動すると、端末の現在日時(例:「2022年3月31日 木曜日 14:39:33」)がTextViewの中央に表示されます。手順1:新規プロジェクトを作成するまず、Android Studioを起動し、メニューから「File」→「New Project」を選択して新しいプロジェクトを作成します。必要な項目をすべて入力してプロジェ

  2. 【Android開発】現在の日付と時刻を取得して画面に表示する方法を解説

    このチュートリアルでは、Androidアプリで現在の日付と時刻を取得し、画面に表示する方法を段階的に解説します。ボタンをタップすると、フォーマットされた日時がTextViewに表示されるシンプルなサンプルアプリを作成します。手順1:新しいプロジェクトを作成するAndroid Studioを開き、メニューから「File」→「New Project」を選択して、必要な情報を入力し、新しいプロジェクトを作成します。テンプレートは「Empty Activity」を選んでおくとスムーズです。手順2:レイアウトファイル(activity_main.xml)を編集するres/layout/activity_