Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java로 달력 날짜를 다양한 형식으로 출력하는 방법

이 글에서는 Java를 사용하여 달력의 날짜를 여러 가지 형식으로 출력하는 방법을 알아보겠습니다. Java에는 기본적으로 내장된 Date 클래스가 없지만, java.time 패키지를 임포트하면 날짜와 시간 API를 자유롭게 활용할 수 있습니다. 이 패키지에는 다양한 날짜·시간 관련 클래스들이 포함되어 있어 손쉽게 원하는 형식으로 날짜를 변환할 수 있습니다.

실행 결과 미리 보기

프로그램을 실행하면 아래와 같이 세 가지 서로 다른 형식의 날짜가 출력됩니다.

첫 번째 날짜 형식: 2022-03-17T23:37:37.623304800
두 번째 날짜 형식: 17/03/2022
세 번째 날짜 형식: Thursday, 17 Mar 2022

알고리즘

프로그램의 전체적인 흐름은 다음과 같습니다.

  1. 프로그램을 시작합니다.
  2. LocalDateTime 타입의 객체 date를 선언합니다.
  3. 현재 시스템의 날짜와 시간 값으로 객체를 초기화합니다.
  4. DateTimeFormatter 객체를 사용하여 서로 다른 날짜·시간 형식을 정의합니다.
  5. 정의한 형식대로 날짜를 변환하여 화면에 출력합니다.
  6. 프로그램을 종료합니다.

예제 1: main 메서드에서 모든 작업 처리하기

아래 예제는 모든 연산을 하나의 'main' 함수 안에서 처리하는 방식입니다. 코드가 간결하여 간단한 스크립트나 학습용으로 적합합니다.

import java.time.*;
import java.time.format.DateTimeFormatter;
public class Demo {
   public static void main(String[] args){
      System.out.println("필요한 패키지를 임포트했습니다");
      LocalDateTime date = LocalDateTime.now();
      System.out.println("LocalDateTime 객체가 정의되었습니다");
      System.out.println("\n첫 번째 날짜 형식:" +date);
      DateTimeFormatter date_format_1 = DateTimeFormatter.ofPattern("dd/MM/yyyy");
      String formattedDate_1 = date.format(date_format_1);
      System.out.println("\n두 번째 날짜 형식:" +formattedDate_1);
      DateTimeFormatter date_format_2 = DateTimeFormatter.ofPattern("EEEE, dd MMM yyyy");
      String formattedDate_2 = date.format(date_format_2);
      System.out.println("\n세 번째 날짜 형식:" +formattedDate_2);
   }
}

출력 결과

필요한 패키지를 임포트했습니다
LocalDateTime 객체가 정의되었습니다

첫 번째 날짜 형식:2022-03-29T08:53:19.809

두 번째 날짜 형식:29/03/2022

세 번째 날짜 형식:Tuesday, 29 Mar 2022

예제 2: 객체 지향 방식으로 함수 분리하기

다음 예제는 날짜 형식 변환 로직을 별도의 함수로 캡슐화하여 객체 지향 프로그래밍(OOP) 스타일로 구현한 것입니다. 코드의 재사용성과 유지보수성이 높아져 실무 프로젝트에서 권장되는 구조입니다.

import java.time.*;
import java.time.format.DateTimeFormatter;
public class Demo {
   static void print_date_format(LocalDateTime date){
      DateTimeFormatter date_format_1 = DateTimeFormatter.ofPattern("dd/MM/yyyy");
      String formattedDate_1 = date.format(date_format_1);
      System.out.println("\n두 번째 날짜 형식:" +formattedDate_1);
      DateTimeFormatter date_format_2 = DateTimeFormatter.ofPattern("EEEE, dd MMM yyyy");
      String formattedDate_2 = date.format(date_format_2);
      System.out.println("\n세 번째 날짜 형식:" +formattedDate_2);
   }
   public static void main(String[] args){
      System.out.println("필요한 패키지를 임포트했습니다");
      LocalDateTime date = LocalDateTime.now();
      System.out.println("LocalDateTime 객체가 정의되었습니다");
      System.out.println("\n첫 번째 날짜 형식:" +date);
      print_date_format(date);
   }
}

출력 결과

필요한 패키지를 임포트했습니다
LocalDateTime 객체가 정의되었습니다

첫 번째 날짜 형식:2022-03-29T08:53:58.155

두 번째 날짜 형식:29/03/2022

세 번째 날짜 형식:Tuesday, 29 Mar 2022

주요 패턴 문자 정리

DateTimeFormatter에서 사용할 수 있는 대표적인 패턴 문자는 다음과 같습니다.

  • yyyy: 4자리 연도 (예: 2022)
  • MM: 2자리 월 (예: 03)
  • dd: 2자리 일 (예: 17)
  • EEEE: 요일의 전체 이름 (예: Thursday)
  • MMM: 월의 축약 이름 (예: Mar)

이처럼 java.time 패키지의 LocalDateTime과 DateTimeFormatter를 조합하면 ISO 기본 형식부터 사용자 지정 형식까지 다양하게 날짜를 표현할 수 있습니다. 필요에 따라 패턴 문자를 조합하여 프로젝트에 맞는 날짜 형식을 자유롭게 만들어 보세요.