development

날짜 문자열을 날짜 또는 달력 개체로 변환하는 방법은 무엇입니까?

big-blog 2020. 11. 23. 19:35
반응형

날짜 문자열을 날짜 또는 달력 개체로 변환하는 방법은 무엇입니까?


나는이 String내가 작성해야하는 날짜의 표현 Date또는 Calendar에서 개체를. 나는 DateCalendarAPI를 살펴 보았지만 내 추악한 구문 분석 방법을 만드는 것 외에는 이것을 할 수있는 것을 찾지 못했습니다. 나는 방법이 있어야한다는 것을 압니다. 누구든지 해결책을 알고 있습니까?


간단히 말해서 :

DateFormat formatter = new SimpleDateFormat("MM/dd/yy");
try {
  Date date = formatter.parse("01/29/02");
} catch (ParseException e) {
  e.printStackTrace();
}

자세한 내용은 SimpleDateFormatjavadoc참조하십시오 .

그리고 그것을으로 바꾸려면 다음을 Calendar수행하십시오.

Calendar calendar = Calendar.getInstance();
calendar.setTime(date);

tl; dr

LocalDate.parse( "2015-01-02" )

java.time

Java 8 이상에는 이러한 다른 답변을 구식으로 만드는 새로운 java.time 프레임 워크가 있습니다. 이 프레임 워크는 JSR 310에 의해 정의되고 ThreeTen-Extra 프로젝트에 의해 확장 Joda-Time 에서 영감을 받았습니다 . 튜토리얼을 참조하십시오 .

이전 번들 클래스 인 java.util.Date/.Calendar는 문제가 많고 혼란스러운 것으로 악명이 높습니다. 그들을 피하십시오.

LocalDate

Joda-Time과 마찬가지로 java.time에는 LocalDate시간 및 시간대없이 날짜 전용 값을 나타내는 클래스 가 있습니다.

ISO 8601

입력 문자열이 표준 ISO 8601 형식 인 yyyy-MM-dd경우 형식 기를 지정할 필요없이 해당 클래스에 문자열을 직접 구문 분석하도록 요청할 수 있습니다.

ISO 8601 형식은 기본적으로 java.time에서 날짜-시간 값의 문자열 표현을 구문 분석하고 생성하는 데 사용됩니다.

LocalDate localDate = LocalDate.parse( "2015-01-02" );

포맷터

형식이 다른 경우 java.time.format 패키지 에서 형식 기를 지정하십시오 . 고유 한 형식화 패턴을 지정하거나 Locale마침표 대 쉼표와 같은 문제를 결정하기 위해 번역 및 문화적 규범을위한 인간 언어를 지정하는 데 적절하게 java.time이 자동으로 현지화되도록 할 수 있습니다.

서식 패턴

DateTimeFormatter형식 패턴에 사용 된 코드에 대한 자세한 내용 클래스 문서를 읽으십시오 . 그들은 오래된 구식 java.text.SimpleDateFormat클래스 패턴과 약간 다릅니다 .

parse메서드에 대한 두 번째 인수가 메서드 참조 , 구문이 Java 8 이상에 추가 된 방법에 유의하십시오 .

String input = "January 2, 2015";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern ( "MMMM d, yyyy" , Locale.US );
LocalDate localDate = LocalDate.parse ( input , formatter );

콘솔에 덤프합니다.

System.out.println ( "localDate: " + localDate );

localDate : 2015-01-02

자동으로 현지화

또는 형식화 패턴을 지정하는 대신 java.time을 현지화하도록하십시오. 을 호출 DateTimeFormatter.ofLocalizedDate하고 Locale런타임 (!) 동안 언제든지 변경 될 수있는 JVM의 현재 기본값에 의존하지 말고 원하는 / 예상을 지정해야합니다 .

String input = "January 2, 2015";
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDate ( FormatStyle.LONG );
formatter = formatter.withLocale ( Locale.US );
LocalDate localDate = LocalDate.parse ( input , formatter );

콘솔에 덤프합니다.

System.out.println ( "input: " + input + " | localDate: " + localDate );

입력 : 2015 년 1 월 2 일 | localDate : 2015-01-02


높은 평가를 Joda 시간 라이브러리는 또한 가치 모양이다. 이것은 Java 7 용으로 작성 되는 새로운 날짜 및 시간 API 의 기초입니다 . 디자인은 깔끔하고 직관적이며 잘 문서화 되어 있으며 원본 java.util.Date/ java.util.Calendar클래스 의 많은 어색함을 방지합니다 .

Joda DateFormatter는 문자열을 Joda로 구문 분석 할 수 있습니다 DateTime.


이 시도:

DateFormat.parse(String)

DateFormat클래스는이 parse방법을.

See http://java.sun.com/j2se/1.4.2/docs/api/java/text/DateFormat.html for more information.

참고URL : https://stackoverflow.com/questions/43802/how-to-convert-a-date-string-to-a-date-or-calendar-object

반응형