1. LocalDateとは何ですか?
始める前に、LocalDate について簡単に紹介します。これは、タイムゾーン情報なしで日付を表すために Java 8 で導入された日付クラスです。つまり、日付に焦点を当て、特定の時刻は無視されます。こうすることで、日付だけを気にする問題を解くことに集中できます。
2. LocalDate オブジェクトを作成して初期化する
次に、LocalDate オブジェクトを作成して初期化する方法を見てみましょう。一般的な方法をいくつか示します。
- now() メソッドを使用して現在の日付を取得します。
LocalDate today = LocalDate.now();
System.out.println("今天的日期是:" + today);
- of() メソッドを使用して年、月、日を指定し、LocalDate オブジェクトを作成します。
LocalDate specialDay = LocalDate.of(2023, 8, 15);
System.out.println("特殊的日子是:" + specialDay);
- 文字列を解析して LocalDate オブジェクトを取得します。
String dateStr = "2023-08-15";
LocalDate parsedDate = LocalDate.parse(dateStr);
System.out.println("解析得到的日期是:" + parsedDate);
3. LocalDate の共通メソッドと操作
次に、日付の問題をより適切に処理するために、LocalDate の一般的なメソッドと操作をいくつか理解しましょう。
- 年、月、日、その他の日付の情報を取得します。
int year = today.getYear();
Month month = today.getMonth();
int dayOfMonth = today.getDayOfMonth();
System.out.println("年份是:" + year);
System.out.println("月份是:" + month);
System.out.println("日期是:" + dayOfMonth);
- 日付の順序を判断する:
boolean isBefore = today.isBefore(specialDay);
boolean isAfter = today.isAfter(specialDay);
System.out.println("是不是比特殊的日子早?" + isBefore);
System.out.println("是不是比特殊的日子晚?" + isAfter);
- 年、月、日およびその他の日付の情報を変更します。
LocalDate modifiedDate = today.withYear(2024).withMonth(12).withDayOfMonth(31);
System.out.println("修改后的日期是:" + modifiedDate);
- 日付間の差異を計算します。
Period period = today.until(specialDay);
int daysBetween = period.getDays();
System.out.println("今天和特殊日子之间相差了:" + daysBetween + " 天");
- 日付を指定した文字列としてフォーマットします。
String formattedDate = today.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日"));
System.out.println("格式化后的日期是:" + formattedDate);