日付の書式設定
CoddyのJavaジャーニー「ロジックとフロー」セクションの一部 — レッスン 58/59。
Java の DateTimeFormatter は、日付と時刻をさまざまなパターンでフォーマットできます。LocalDate、LocalTime、LocalDateTime と共に使用できます。
特定のフォーマットパターンでフォーマッターを作成します:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");フォーマッターを使用して日付をフォーマットします:
LocalDate date = LocalDate.of(2024, 3, 15);
String formatted = date.format(formatter);上記のコードを実行した後、formatted には次のものが含まれます:
2024-03-15
文字列を日付に解析:
String dateStr = "2024-03-15";
LocalDate date = LocalDate.parse(dateStr, formatter);チャレンジ
簡単formatDate という名前のメソッドを作成し、3つの引数を受け取るようにしてください:
- フォーマット "yyyy-MM-dd" の String (
dateStr) - 入力日付のパターンである String (
inputPattern) - 希望する出力パターンである String (
outputPattern)
このメソッドは以下を行うべきです:
- 入力パターンを使用して入力日付を解析する
- 出力パターンを使用してフォーマットする
- 以下のこれらのパターンを扱う:
- "basic": "yyyy-MM-dd"
- "long": "MMMM d, yyyy"
- "short": "MM/dd/yy"
- "custom": 実際のパターン文字列
戻り値のメッセージは以下であるべきです:
- 日付が無効な場合: "Invalid date format" を返す
- パターンが無効な場合: "Invalid pattern" を返す
- 成功時: フォーマットされた日付を返す
チートシート
DateTimeFormatter を使用すると、特定の形式で日付と時刻をフォーマットできます:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");フォーマッターを使用して日付をフォーマットします:
LocalDate date = LocalDate.of(2024, 3, 15);
String formatted = date.format(formatter);文字列を日付に解析します:
String dateStr = "2024-03-15";
LocalDate date = LocalDate.parse(dateStr, formatter);自分で試してみよう
import java.util.Scanner;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Main {
public static String formatDate(String dateStr, String inputPattern, String outputPattern) {
// ここにコードを記述してください
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String dateStr = scanner.nextLine();
String inputPattern = scanner.nextLine();
String outputPattern = scanner.nextLine();
System.out.println(formatDate(dateStr, inputPattern, outputPattern));
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。