日付の書式設定
CoddyのJavaジャーニー「ロジックとフロー」セクションの一部。レッスン 58/59。
JavaのDateTimeFormatterを使うと、日付と時刻をさまざまなパターンでフォーマットできます。LocalDate、LocalTime、LocalDateTimeと組み合わせて使用できます。
特定のパターンでフォーマッターを作成します:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");formatterを使用して日付をフォーマットします:
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つの引数を受け取るようにします:
dateStr形式が "yyyy-MM-dd" の StringinputPattern入力日付の pattern である StringoutputPattern希望する出力 pattern である String
このメソッドは次の処理を行う必要があります:
- input pattern を使用して入力日付を解析する
- output pattern を使用して日付をフォーマットする
- 次の pattern に対応する:
- "basic": "yyyy-MM-dd"
- "long": "MMMM d, yyyy"
- "short": "MM/dd/yy"
- "custom": 実際の pattern 文字列
返すメッセージは次のとおりです:
- 無効な日付の場合: "Invalid date format" を返す
- 無効な pattern の場合: "Invalid pattern" を返す
- 成功した場合:フォーマットされた日付を返す
自分で試してみよう
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));
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
自分で練習してみよう: Javaオンラインコンパイラ