자바 변경 날짜 형식

Rashmi Patidar 2023년10월12일
자바 변경 날짜 형식

날짜 형식으로 날짜 문자열을 변환하는 데 사용할 수있는 다양한 옵션이 있습니다. 다음은 원하는 결과를 얻을 수있는 방법입니다. 아래 코드 블록에서 다양한 방법을 이해합시다.

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class StringToDateFormat {
  public static void main(String[] args) throws ParseException {
    System.out.print("Way1: ");
    SimpleDateFormat dt = new SimpleDateFormat("yyyyy-MM-dd");
    System.out.print(dt.parse("2021-11-05") + "\n");

    System.out.print("Way2: ");
    SimpleDateFormat formatter = new SimpleDateFormat("dd/MMM/yyyy HH:mm:ss", Locale.ENGLISH);
    System.out.print(formatter.parse("21/JAN/2021 21:35:56") + "\n");

    System.out.print("Way3: ");
    DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("EEE, d MMM yyyy", Locale.ENGLISH);
    System.out.print(LocalDate.parse("Wed, 5 May 2021", formatter1) + "\n");

    System.out.print("Way4: ");
    System.out.print(LocalDate.parse("2021-05-31") + "\n");
  }
}

Way1에서SimpleDateFormat클래스의 인스턴스가 생성됩니다. 날짜 문자열이 입력되는 형식의pattern값을 사용합니다. 따라서 이러한 방식으로yyyy-MM-dd형식으로 날짜를 입력했습니다. 또한 인스턴스화는 매개 변수가 널이거나 잘못된 경우NullPointerExceptionIllegalArgumentException과 같은 일부 예외를 처리합니다. 이제 최근에 생성 된formatter개체를 사용하여parse메서드를 초기화합니다. 이 메서드는 날짜 문자열을 입력 값으로 사용하고 구문 분석 후Date데이터 유형을 반환합니다. 주어진 날짜 문자열과 포맷터가 일치하지 않거나 내부적으로 날짜 문자열이 구문 분석되지 않으면ParseException이 발생합니다.

Way2에서 다시SimpleDateFormat클래스는 입력해야하는 형식을 작성하는 데 사용됩니다. 그러나 이제SimpleDateFormat의 재정의 된 생성자가 호출됩니다. 첫 번째 매개 변수는Date문자열의format/pattern입니다. 다른 하나는 지정된 지리적 지역 또는 지역을 정의하는Locale입니다. Note:메소드에서 모든 로케일이 허용되지 않습니다. 이제 mmm 형식으로 한 달이있는dd/MMM/yyyy HH:mm: ss패턴을 확인합니다. 형식은 mmm 형식에서 월의 속기를 사용할 수 있음을 의미합니다. 또한 형식 문자열에서 시간, 분, 초가 걸릴 수 있습니다.

Way3에서DateTimeFormat클래스를 사용하여 날짜-시간 오브젝트를 형식화하고 인쇄합니다. ofPattern메소드는 원하는 패턴의 포맷터를 준비하는 데 사용됩니다. 이제LocalDate클래스의 정적 메소드가 호출되어 날짜를 구문 분석합니다. 메소드는 구문 분석 할 텍스트를 사용하는parse및 입력 날짜 텍스트의 형식을 지정하는DateTimeFormatter입니다. 이 메서드는LocalDate인스턴스를 반환하며 null이 아닙니다. 텍스트를 구문 분석 할 수없는 경우DateTimeParseException이 발생합니다. 형식은 요일 이름을 추가로 사용할 수 있습니다. EEE약어는 포맷터에서 동일 함을 나타냅니다.

Way4에서는LocalDate클래스의 정적 팩토리 메소드 인parse메소드가 직접 호출됩니다. 이번에는 포맷터 인스턴스 나 패턴이 어떤 식 으로든 정의되지 않습니다. 이제 함수는yyyy-MM-dd형식의 입력 날짜 문자열을받습니다. 지정된 날짜 문자열은 항상 유효한 날짜를 나타내야하며DateTimeFormatter.ISO_LOCAL_DATE형식을 사용하여 변환됩니다. 이 메소드는 텍스트를 구문 분석 할 수없는 경우DateTimeParseException예외를 발생시킵니다.

다음은 날짜 문자열을Date형식으로 변환하는 코드의 출력입니다.

Way1: Fri Nov 05 00:00:00 IST 2021
Way2: Thu Jan 21 21:35:56 IST 2021
Way3: 2021-05-05
Way4: 2021-05-31
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

관련 문장 - Java Date