Menu
Coddy logo textTech

LocalDateTime の使用

CoddyのJavaジャーニー「ロジックとフロー」セクションの一部 — レッスン 56/59。

JavaのLocalDateTimeは、日付と時刻の両方を組み合わせています。イベントスケジュールやタイムスタンプのように、両方のコンポーネントを扱う必要がある場合に便利です。

現在の日付と時刻を作成

LocalDateTime now = LocalDateTime.now();

特定の日期と時刻を作成する:

LocalDateTime dateTime = LocalDateTime.of(2024, 3, 15, 14, 30);
// 2024-03-15 14:30

上記のコードを実行した後、dateTime には次のものが含まれます:

2024-03-15T14:30

日付と時刻をフォーマットする:

LocalDateTime dateTime = LocalDateTime.of(2024, 3, 15, 14, 30);
String formatted = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
challenge icon

チャレンジ

簡単

processDateTime という名前のメソッドを作成し、4つの引数を受け取ります:

  1. "yyyy-MM-dd HH:mm" 形式の String (dateTimeStr)
  2. 加算または減算するための整数 (amount)
  3. "hours"、"days"、または "months" のいずれかである String (unit)
  4. "add" または "subtract" のいずれかである String (operation)

このメソッドは次のことを行うべきです:

  1. 入力の日時文字列を解析する
  2. 指定された操作を実行する
  3. 結果についてのフォーマットされた情報を返す

戻り値のメッセージは次のようであるべきです:

  • 無効な形式の場合: "Invalid date time format" を返す
  • 無効な単位の場合: "Invalid unit" を返す
  • 無効な操作の場合: "Invalid operation" を返す
  • 成功の場合: "Original: [datetime], New: [new_datetime], Day: [day_name]" を返す

チートシート

LocalDateTime は Java で日付と時刻の両方を組み合わせます。

現在の日付と時刻を作成:

LocalDateTime now = LocalDateTime.now();

特定の日期と時刻を作成:

LocalDateTime dateTime = LocalDateTime.of(2024, 3, 15, 14, 30);
// 結果:2024-03-15T14:30

日付と時刻をフォーマット:

LocalDateTime dateTime = LocalDateTime.of(2024, 3, 15, 14, 30);
String formatted = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));

自分で試してみよう

import java.util.Scanner;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;

public class Main {
    public static String processDateTime(String dateTimeStr, int amount, String unit, String operation) {
        // ここにコードを記述してください
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String dateTimeStr = scanner.nextLine();
        int amount = Integer.parseInt(scanner.nextLine());
        String unit = scanner.nextLine();
        String operation = scanner.nextLine();
        
        System.out.println(processDateTime(dateTimeStr, amount, unit, operation));
    }
}
quiz icon腕試し

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

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