이 예제는 Java 소스 코드 파일(FastDateFormat.java)alvinalexander.com “Java 소스 코드 웨어하우스” 프로젝트에 포함되어 있습니다. 이 프로젝트의 목적은 “예제로 Java 를 배우십시오”TM을 돕기 위한 것입니다. Java Date 개체에 대한 스레드 안전 포맷터인 FastDateFormat을 사용하고 ISO 8601에 정의된 ISO 날짜 및 시간 서식 지정 표준에 해당하는 DateFormatUtils에서 FastDateFormat의 공용 정적 인스턴스를 사용합니다. 다음 예제에서는 지정된 표준 영역에서 날짜와 시간을 나타내는 국제 표준을 출력합니다. 이 예제에서는 날짜 및 시간 서식을 만드는 방법을 보여 드리겠습니다. 우리는 날짜와 시간 포맷 유틸리티 및 상수를 제공하는 org.apache.commons.lang3.time.DateFormatUtils 클래스를 사용하고 있습니다. 그것은 org.apache.commons.lang3.time.FastDateFormat 클래스를 사용 하 여, 즉 SimpleDateFormat의 빠르고 스레드 안전 버전. 즉, 날짜 및 시간 형식: SimpleDateFormat 패턴과 일치 하는 ISO-8601 준수 표준 시간대를 생성할 수 없습니다: +11:30. Sun의 SimpleDateFormat 클래스는 콜론 구분 기호 없이 표준 영역을 생성할 수 있지만 표준 형식을 구문 분석할 수 있어야 하는 시스템과 호환되지 않습니다.

FastDateFormat은 적절한 표준 시간대 표현으로 변환되는 “ZZ” 날짜 형식 기호를 추가하여 ISO 8601 표준을 준수했습니다. 이전 예제에서 보여 준 형식 외에도 DateFormatUtils 클래스는 전체 ISO 8601 날짜 형식에 대한 여러 변형을 유지합니다. 시간만 표시하는 형식, 날짜만 표시하는 형식 및 기타 형식뿐만 아니라 SMTP(단순 메일 전송 프로토콜)에 날짜를 표시하기 위한 표준 형식이 있습니다. (표 1-4 참조) . 부속, 캘린더, 더 이상 사용되지 않은, fastdateformat, fastdateformat, fastdateprinter, formatcache, 로케일, 객체, 재정의, 구문 분석, 문자열, 문자열 버퍼, 텍스트, 시간대, 유틸리티 사용자 정의 날짜 형식을 만들려면 FastDateFormat을 사용할 수 있습니다. 직접 클래스. 기본 로캘에서 기본 패턴을 사용하여 포터 인스턴스를 가져옵니다. 3.2 이후 FastDateFormat은 구문 분석과 인쇄를 지원합니다.

ISO 날짜 및 시간 표준에 대한 자세한 내용은 http://www.cl.cam.ac.uk/~mgk25/iso-time.html 참조하십시오. . 날짜를 포맷해야 하며 SimpleDateFormat은 스레드로부터 안전하지 않습니다. 또한 표준 국제 표준 기구(ISO) 날짜 형식을 찾고 있습니다. Java 1.4는 RFC822 형식(예: +0800 또는 -1100)의 표준 시간대를 나타내기 위해 새 패턴 문자인 `Z`를 도입했습니다. 이 패턴 문자는 여기에서 사용할 수 있습니다 (모든 JDK 버전에서). 사용자 지정 날짜 형식을 사용해야 하는 경우 SimpleDateFormat대신 FastDateFormat을 사용합니다. SimpleDateFormat이 충분하지 않습니까? 간단한 대답은 아니오입니다. SimpleDateFormat은 스레드로부터 안전하지 않으며 FastDateFormat은 없습니다. 실제로 Sun 서식 지정 클래스중 어느 것도 스레드에서 안전하지 않다는 점에 유의해야 합니다. 여러 스레드가 Java 서식 지정 개체를 사용하는 경우 교착 상태, RuntimeException 또는 일치하지 않는 동작이 발생할 수 있습니다.