はじめに
今回は、javaの「日付操作」の使い方について、勉強したことを記載していきたいと思います。
主なクラス
DateAndTime APIで使用する主なクラスは下の表になります。
| クラス名 | 詳細 |
| LocalDate | ローカルの日付 |
|
LocalDateTime
|
ローカルの日時 |
|
LocalTime
|
ローカルの時刻 |
|
ZonedDateTime
|
タイムゾーンを持つ日時 |
現在の日時の取得
nowメソッドを使用することで取得できます。
public static void main(String[] args) throws Exception {
// 現在日付
LocalDate date = LocalDate.now();
System.out.println(date); // 2024-07-20
// 現在日時
LocalDateTime date2 = LocalDateTime.now();
System.out.println(date2); // 2024-07-20T15:01:47.310062700
// 現在時刻
LocalTime time = LocalTime.now();
System.out.println(time); // 15:01:47.310062700
// 現在時刻(タイムゾーン付き)
ZonedDateTime date3 = ZonedDateTime.now();
System.out.println(date3); // 2024-07-20T15:01:47.311060300+09:00[Asia/Tokyo]
}
特定の日時を取得
ofメソッドを使用することで特定の日時を取得することができます。
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// 日付
LocalDate date = LocalDate.of(2023,7,19);
System.out.println(date); // 2023-07-19
// 時刻
LocalTime time = LocalTime.of(4,35);
System.out.println(time); // 04:35
// 日時
LocalDateTime date2 = LocalDateTime.of(date, time);
System.out.println(date2); // 2023-07-19T04:35
}
年/月/日/時/分/秒を取得する
年/月/日/時/分/秒をそれぞれ取得することが可能です。
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// 日時
LocalDateTime date = LocalDateTime.now();
// 年
int year = date.getYear();
System.out.println(year);
// 月
int month = date.getMonthValue();
System.out.println(month);
// 日
int day = date.getDayOfMonth();
System.out.println(day);
// 時
int hour = date.getHour();
System.out.println(hour);
// 分
int minute = date.getMinute();
System.out.println(minute);
// 秒
int second = date.getSecond();
System.out.println(second);
}
日付も文字列に変換する
DateTimeFormatterクラスを使用することで日付を独自のフォーマットとして文字列に変換することができます。
| 文字 | 詳細 |
| y | 年 |
| M | 月 |
| d | 日 |
| H | 時 |
| m | 分 |
| s | 秒 |
| E | 曜日 |
例
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// フォーマット
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm");
// 日時
LocalDateTime date = LocalDateTime.now();
// 2024/07/20 16:53
System.out.println(date.format(format));
}
日付比較
日付を比較するメソッドも用意されています。
| メソッド | 詳細 |
|
isEqual
|
日時が同じ場合true |
|
isAfter
|
引数より後の場合true |
| isBefore | 引数より前の場合true |
例
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// 日時
LocalDateTime date = LocalDateTime.now();
LocalDateTime date2 = LocalDateTime.of(2023, 5, 11, 5, 50);
boolean result1 = date.isEqual(date2);
boolean result2 = date.isAfter(date2);
boolean result3 = date.isBefore(date2);
}
日付計算
| メソッド | 詳細 |
|
plusYears
|
年の加算 |
|
minusYears
|
年の減算 |
|
plusMonths
|
月の加算 |
|
minusMonths
|
月の減算 |
|
plusDays
|
日の加算 |
|
minusDays
|
日の減算 |
|
plusHours
|
時の加算 |
|
minusHours
|
時の減算 |
|
plusMinutes
|
分の加算 |
|
minusMinutes
|
分の減算 |
|
plusSeconds
|
秒の加算 |
|
minusSeconds
|
秒の減算 |
例
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// 日時
LocalDateTime date = LocalDateTime.now();
System.out.println(date.plusYears(1));
System.out.println(date.minusYears(1));
System.out.println(date.plusMonths(1));
System.out.println(date.minusMonths(1));
System.out.println(date.plusDays(1));
System.out.println(date.minusDays(1));
System.out.println(date.plusHours(1));
System.out.println(date.minusHours(1));
System.out.println(date.plusMinutes(1));
System.out.println(date.minusMinutes(1));
}
ドキュメント
【公式ドキュメント】
Java SE Specifications (oracle.com)
最後に
Javaの環境構築は、この記事を参照してみてください。
【開発環境構築】VS CodeでJavaを使用するための環境構築を実施する – SEもりのLog (selifemorizo.com)
以上、ログになります。
これからも継続していきましょう!!



コメント