はじめに
今回は、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)
以上、ログになります。
これからも継続していきましょう!!
コメント