Javaで現在の日付・時刻を取得する3つの方法(LocalDate / LocalTime / LocalDateTime)
Javaで現在の日付や時刻を取得したいと思ったことはありませんか?このチュートリアルでは、Java 8以降で利用できる3つの異なる方法を、サンプルコードとともにわかりやすく解説します。
日付や時刻の表示に使用する主なクラスは、LocalDate、LocalTime、LocalDateTime の3つです。これらはすべて java.time パッケージに含まれており、従来の Date や Calendar クラスに比べて直感的で扱いやすいのが特徴です。
現在の日付を取得する
LocalDate クラスは、タイムゾーン情報を持たない「日付」を表すために使用します。
GetCurrentDate.java
import java.time.LocalDate;
public class GetCurrentDate {
public static void main(String[] args) {
// 現在の日付を取得
LocalDate now = LocalDate.now();
System.out.println(now.toString());
}
}
出力結果:
2020-02-07
日付の表示形式を指定する
DateTimeFormatter クラスを使うと、日付の表示形式を自由にカスタマイズできます。たとえば、現在の日付を yyyy/MM/dd 形式で表示するには、次のように記述します。
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class GetCurrentDate {
public static void main(String[] args) {
LocalDate now = LocalDate.now();
// yyyy/MM/dd 形式で整形して出力
System.out.println(now.format(DateTimeFormatter.ofPattern("yyyy/MM/dd")));
}
}
出力結果:
2020/02/07
また、LocalDate クラスには、現在の日付に関するより詳しい情報を取得できる便利なメソッドも用意されています。代表的なものとして、getDayOfWeek()(曜日)、getDayOfMonth()(月の何日目か)、getDayOfYear()(年の何日目か)などがあります。
import java.time.LocalDate;
public class GetCurrentDate {
public static void main(String[] args) {
LocalDate now = LocalDate.now();
System.out.println("Today's date: " + now.toString());
System.out.println("Day of week: " + now.getDayOfWeek().toString());
System.out.println("Day of month: " + now.getDayOfMonth());
System.out.println("Day of year: " + now.getDayOfYear());
}
}
出力結果:
Today's date: 2020-02-07
Day of week: FRIDAY
Day of month: 7
Day of year: 38
現在の時刻を取得する
LocalTime クラスは、「時刻」を表すために使用します。
GetCurrentTime.java
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class GetCurrentTime {
public static void main(String[] args) {
LocalTime now = LocalTime.now();
System.out.println("Time now: " + now.toString());
// HH:mm:ss 形式で整形して出力
System.out.println("Formatted time: " + now.format(DateTimeFormatter.ofPattern("HH:mm:ss")));
}
}
ポイント: 時刻の表示形式も、DateTimeFormatter を使って自由に整形できます。
出力結果:
Time now: 00:02:53.313
Formatted time: 00:02:53
LocalTime クラスにも、現在の時刻に関する詳細情報を取得できるユーティリティメソッドが用意されています。
import java.time.LocalTime;
public class GetCurrentTime {
public static void main(String[] args) {
LocalTime now = LocalTime.now();
System.out.println("Current hour: " + now.getHour());
System.out.println("Current minute: " + now.getMinute());
System.out.println("Current second: " + now.getSecond());
}
}
出力結果:
Current hour: 0
Current minute: 10
Current second: 16
現在の日付と時刻をまとめて取得する
現在の日付と時刻の両方を一度に取得したい場合は、LocalDateTime クラスを使用します。
package io.devqa.tutorials;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class GetCurrentTime {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
// 日付と時刻をまとめて整形
System.out.println(now.format(DateTimeFormatter.ofPattern("yyyy/MM/dd - HH:mm:ss")));
System.out.println("Day of month: " + now.getDayOfMonth());
System.out.println("Current hour: " + now.getHour());
}
}
出力結果:
2020/02/08 - 00:18:12
Day of month: 8
Current hour: 0
まとめ
Java 8で導入された Date-Time API を使えば、日付の取得には LocalDate、時刻の取得には LocalTime、その両方には LocalDateTime を使うだけで簡単に実装できます。DateTimeFormatter を組み合わせれば、用途に応じた柔軟な表示形式にも対応可能です。さらに、これらのクラスはイミュータブル(不変)でスレッドセーフなため、マルチスレッド環境でも安心して利用できます。
-
Swiftで現在の日付と時刻を取得する方法(UTC・ローカル時刻対応)
日付や時刻の処理は、プログラミング初心者がつまずきやすいポイントのひとつです。ほとんどのアプリでは現在の日付を取得する必要があり、予約管理、ログ記録、期限チェックなど、多くの機能がこの情報に依存しています。 本記事では、Swiftを使ってiOSアプリで現在の日付と時刻を取得する基本的な方法を解説します。具体的には、UTC(協定世界時)の時刻と、デバイスのタイムゾーンに基づく現地時刻の2パターンを紹介します。 UTC(協定世界時)の現在時刻を取得する UTCの時刻を取得したい場合は、Playgroundに以下のコードを貼り付けて実行してください。わずか2行で完了します。 let utcDate
-
Androidで現在の日時を取得する方法【SimpleDateFormatの使い方を解説】
はじめに Oracle公式ドキュメントによると、SimpleDateFormatはロケールに依存した形で日付のフォーマット(表示)と解析(パース)を行うための具象クラスです。本記事では、このクラスを使ってAndroidアプリ内で現在の日付と時刻を取得し、画面に表示する方法を解説します。 まず、以下のようにJavaのSimpleDateFormatクラスとDateクラスをインポートします。 import java.text.SimpleDateFormat; import java.util.Date; 実装手順 ステップ1:新規プロジェクトの作成 Android Studioを起動し、「Fil