날짜 문자열을 날짜 또는 달력 개체로 변환하는 방법은 무엇입니까?
나는이 String
내가 작성해야하는 날짜의 표현 Date
또는 Calendar
에서 개체를. 나는 Date
및 Calendar
API를 살펴 보았지만 내 추악한 구문 분석 방법을 만드는 것 외에는 이것을 할 수있는 것을 찾지 못했습니다. 나는 방법이 있어야한다는 것을 압니다. 누구든지 해결책을 알고 있습니까?
간단히 말해서 :
DateFormat formatter = new SimpleDateFormat("MM/dd/yy");
try {
Date date = formatter.parse("01/29/02");
} catch (ParseException e) {
e.printStackTrace();
}
자세한 내용은 SimpleDateFormat
javadoc 을 참조하십시오 .
그리고 그것을으로 바꾸려면 다음을 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
'development' 카테고리의 다른 글
angularjs를 사용하여 브라우저를 감지하는 방법은 무엇입니까? (0) | 2020.11.23 |
---|---|
Chrome 디버거에서 HTTP POST 페이로드가 보이지 않습니까? (0) | 2020.11.23 |
SVN 클라이언트는 사용자 인증 데이터를 어디에 저장합니까? (0) | 2020.11.23 |
핵심 데이터 : 다 대다 관계를위한 NSPredicate. (0) | 2020.11.23 |
명령과 이벤트가 별도로 표시되는 이유는 무엇입니까? (0) | 2020.11.23 |