HOWTO · Java
자바 변경 날짜 형식
이 기사에서는 Java에서 날짜 형식을 변경하는 방법을 소개합니다.
날짜 형식으로 날짜 문자열을 변환하는 데 사용할 수있는 다양한 옵션이 있습니다. 다음은 원하는 결과를 얻을 수있는 방법입니다. 아래 코드 블록에서 다양한 방법을 이해합시다.
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형식으로 날짜를 입력했습니다. 또한 인스턴스화는 매개 변수가 널이거나 잘못된 경우NullPointerException및IllegalArgumentException과 같은 일부 예외를 처리합니다. 이제 최근에 생성 된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