Menu
Coddy logo textTech

日付の書式設定

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);
challenge icon

チャレンジ

簡単

formatDateという名前のメソッドを作成し、3つの引数を受け取るようにします:

  1. dateStr形式が "yyyy-MM-dd" の String
  2. inputPattern入力日付の pattern である String
  3. outputPattern希望する出力 pattern である String

このメソッドは次の処理を行う必要があります:

  1. input pattern を使用して入力日付を解析する
  2. output pattern を使用して日付をフォーマットする
  3. 次の 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));
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン

自分で練習してみよう: Javaオンラインコンパイラ