DateTimeFormatterBuilder — 날짜-시간 포맷터 생성 빌더

DateTimeFormatterBuilder — 날짜-시간 포맷터 생성 빌더

DateTimeFormatterBuilder는 날짜-시간 포맷터(포매터)를 만드는 데 사용하는 빌더 클래스예요. 모든 날짜-시간 포맷터는 궁극적으로 이 빌더를 통해 만들어져요.

출처: Java API Reference

본문

시그니처

public final class DateTimeFormatterBuilder extends Object

이 클래스는 가변(mutable) 빌더로, 단일 스레드에서 사용하도록 설계되었어요.

설명

이 빌더를 사용하면 DateTimeFormatter를 만들 수 있어요. 날짜-시간의 기본 요소들을 모두 추가할 수 있어요:

  • Value — 숫자 값
  • Fraction — 소수점을 포함한 분수 값. 분수가 올바르게 파싱되도록 분수 출력 시 항상 사용해요
  • Text — 값의 텍스트 표현
  • OffsetId/Offset — 존 오프셋(zone offset)
  • ZoneId — 시간대(time-zone) id
  • ZoneText — 시간대 이름
  • ChronologyId — 크로놀로지(chronology) id
  • ChronologyText — 크로놀로지 이름
  • Literal — 텍스트 리터럴
  • Nested and Optional — 포맷을 중첩하거나 선택적으로 만들 수 있어요

또한 모든 요소에 공백이나 다른 문자로 패딩(padding)을 추가해 장식할 수 있어요. 마지막으로 java.text.SimpleDateFormat과 대부분 호환되는 축약 패턴을 사용할 수도 있어요. 자세한 내용은 appendPattern(String)을 참고하세요. 실제로는 패턴을 파싱해서 빌더의 다른 메서드를 호출하는 방식으로 동작해요.

주요 메서드

  • append(DateTimeFormatter formatter) — 포맷터의 모든 요소를 빌더에 추가해요.
  • appendChronologyId() — 'ISO'나 'ThaiBuddhist' 같은 크로놀로지 ID를 포맷터에 추가해요.
  • appendText(TemporalField field, TextStyle textStyle) — 날짜-시간 필드의 텍스트를 포맷터에 추가해요.
  • appendValue(TemporalField field) — 날짜-시간 필드의 값을 일반 출력 스타일로 포맷터에 추가해요.
  • appendPattern(String pattern) — 지정한 패턴으로 정의된 요소들을 빌더에 추가해요.
  • appendOffset(String pattern, String noOffsetText) — '+01:00' 같은 존 오프셋을 포맷터에 추가해요.
  • appendZoneId() — 'Europe/Paris' 또는 '+02:00' 같은 시간대 ID를 포맷터에 추가해요.
  • appendInstant() — ISO-8601을 사용해 인스턴트(instant)를 3자리 단위로 그룹화한 분수 자릿수로 포맷해요.
  • appendOptional(DateTimeFormatter formatter) — 선택적으로 포맷/파싱할 포맷터를 빌더에 추가해요.
  • optionalStart() / optionalEnd() — 선택 구간의 시작과 끝을 표시해요.
  • padNext(int padWidth) — 다음에 추가되는 프린터/파서를 공백으로 고정 폭까지 패딩해요.
  • parseCaseInsensitive() — 나머지 포맷터의 파싱 스타일을 대소문자 구분 없이 바꿔요.
  • getLocalizedDateTimePattern(FormatStyle dateStyle, FormatStyle timeStyle, Chronology chrono, Locale locale) — 로케일과 크로놀로지에 대한 날짜·시간 스타일의 형식 패턴을 가져와요.

더 알아보기 (Learn more)