문자열에서 LocalDate로
문자열을 어떻게 변환합니까?LocalDate
?
다음과 같은 예를 본 적이 있습니다.
LocalDate dt = new LocalDate("2005-11-12");
하지만 내 현악기들은 다음과 같다.
2005-nov-12
java.time
Java 1.8 이후 java.time 클래스를 사용하면 추가 라이브러리 없이 이를 수행할 수 있습니다.튜토리얼을 참조해 주세요.
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MMM-dd");
formatter = formatter.withLocale( putAppropriateLocaleHere ); // Locale specifies human language for translating, and cultural norms for lowercase/uppercase and abbreviations and such. Example: Locale.US or Locale.CANADA_FRENCH
LocalDate date = LocalDate.parse("2005-nov-12", formatter);
그러나 구문은 거의 동일합니다.
Joda Time을 사용하시면서DateTimeFormatter
:
final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MMM-dd");
final LocalDate dt = dtf.parseLocalDate(yourinput);
Java 8 이후를 사용하는 경우 hertzi의 답변을 참조하십시오.
Date Time에서 LocalDate로 변경해야 할 수 있습니다.
Joda 시간 사용:
DateTimeFormatter FORMATTER = DateTimeFormat.forPattern("yyyy-MMM-dd");
DateTime dateTime = FORMATTER.parseDateTime("2005-nov-12");
LocalDate localDate = dateTime.toLocalDate();
Datetime 포맷은 에 의해 실행됩니다.org.joda.time.format.DateTimeFormatter class
3개의 클래스에서 포메터를 작성하기 위한 공장 메서드를 제공하고 있습니다.이것은 1개입니다.다른 사람들은ISODateTimeFormat
그리고.DateTimeFormatterBuilder
.
DateTimeFormatter format = DateTimeFormat.forPattern("yyyy-MMM-dd");
LocalDate lDate = new LocalDate().parse("2005-nov-12",format);
final org.joda.time.LocalDate class
는 타임존이 없는 날짜를 나타내는 불변의 datetime 클래스입니다. LocalDate
스레드 세이프하고 불변합니다.단, 연대표도 마찬가지입니다.제공되는 표준 연대기 클래스는 모두 스레드 세이프이며 불변입니다.
DateTimeFormatter
에는 문자 시퀀스의 해석에 직접 사용할 수 있는 형식이 포함되어 있습니다.대소문자를 구분합니다.Nov는 동작하지만, Nov는 동작하지 않습니다.
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MMM-dd");
try {
LocalDate datetime = LocalDate.parse(oldDate, pattern);
System.out.println(datetime);
} catch (DateTimeParseException e) {
// DateTimeParseException - Text '2019-nov-12' could not be parsed at index 5
// Exception handling message/mechanism/logging as per company standard
}
DateTimeFormatterBuilder
에, 포메터를 커스텀으로 작성하는 방법을 나타냅니다.Case Insensitive, Nov, Nov는 동일하게 취급됩니다.
DateTimeFormatter f = new DateTimeFormatterBuilder().parseCaseInsensitive()
.append(DateTimeFormatter.ofPattern("yyyy-MMM-dd")).toFormatter();
try {
LocalDate datetime = LocalDate.parse(oldDate, f);
System.out.println(datetime); // 2019-11-12
} catch (DateTimeParseException e) {
// Exception handling message/mechanism/logging as per company standard
}
언급URL : https://stackoverflow.com/questions/8746084/string-to-localdate
'programing' 카테고리의 다른 글
Guzzle을 사용한HTTP 기본 인증은 어떻게 하나요? (0) | 2022.09.25 |
---|---|
시간(밀리초 단위) C (0) | 2022.09.14 |
다른 컴포넌트의 Vue 단일 컴포넌트에서 데이터를 가져오시겠습니까? (0) | 2022.09.13 |
JavaScript에서 문자열을 여러 구분자로 분할하려면 어떻게 해야 합니까? (0) | 2022.09.13 |
Vue, i18n, vue-meta는 어떻게 친구를 만들까? (0) | 2022.09.13 |