Menu
CoddyTech

LocalDateTime 사용법

Coddy Java 여정의 논리와 흐름 섹션에 포함된 레슨. 59개 중 56번째.

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"));

같은 패턴을 사용해 String에서 날짜와 시간을 파싱하세요:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDateTime parsed = LocalDateTime.parse("2024-03-15 14:30", formatter);  // 2024-03-15T14:30

포매터가 없으면 LocalDateTime.parse()는 ISO 형식 2024-03-15T14:30만 허용합니다. 패턴에 맞지 않는 문자열은 DateTimeParseException을 발생시키므로, LocalDate.parse()에서 했던 것처럼 호출을 try-catch로 감싸세요.

challenge icon

챌린지

쉬움

만들기: 네 개의 인수를 받는 processDateTime이라는 메서드

  1. "yyyy-MM-dd HH:mm" 형식의 문자열(dateTimeStr)
  2. 더하거나 뺄 정수(amount)
  3. "hours", "days", "months" 중 하나인 문자열(unit)
  4. "add" 또는 "subtract"인 문자열(operation)

메서드는 다음을 수행해야 합니다.

  1. 입력된 날짜-시간 문자열을 파싱합니다.
  2. 지정된 연산을 수행합니다.
  3. 결과에 관한 서식이 지정된 정보를 반환합니다.

반환할 메시지:

  • 형식이 잘못된 경우: "Invalid date time format" 반환
  • 단위가 잘못된 경우: "Invalid unit" 반환
  • 연산이 잘못된 경우: "Invalid operation" 반환
  • 성공한 경우: "Original: [datetime], New: [new_datetime], Day: [day_name]" 반환. 두 날짜-시간은 yyyy-MM-dd HH:mm 형식으로 쓰고, [day_name]은 새 날짜-시간의 요일을 대문자로 표시합니다(예: FRIDAY).

직접 해보기

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실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리와 흐름의 모든 레슨

직접 연습해 보세요: 온라인 Java 컴파일러