programing

문자열에서 LocalDate로

copyandpastes 2022. 9. 14. 00:00
반응형

문자열에서 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 class3개의 클래스에서 포메터를 작성하기 위한 공장 메서드를 제공하고 있습니다.이것은 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

반응형