날짜 및 시간 서식 지정

Flash Player 10.1 이상, Adobe AIR 2.0 이상

날짜 및 시간 값의 표시 서식 역시 지역에 따라 크게 다릅니다. 예를 들어 특정 로캘에서 1962년 7월 2일 오후 1시 1분이 약식으로 표시되는 방법은 다음과 같습니다.

로캘

날짜 및 시간 서식

en-US(영어, 미국)

1/2/62 1:01pm

fr-FR(프랑스어, 프랑스)

2/1/62 13:01

ja-JP(일본, 일본어)

1962/2/1 13:01

DateTimeFormatter 클래스 사용

DateTimeFormatter 클래스는 특정 로캘 규칙에 따라 Date 값을 날짜 및 시간 문자열로 서식 지정합니다.

서식 지정은 날짜 또는 시간 값으로 대체되는 글자 시퀀스가 포함되어 있는 패턴 문자열을 따릅니다. 예를 들어 "yyyy/MM" 패턴에서는 "yyyy" 문자가 4자리 연도로 대체되고 그 뒤에 "/" 문자와 2자리 월이 차례로 표시됩니다.

패턴 문자열은 setDateTimePattern() 메서드를 사용하여 명시적으로 설정할 수 있습니다. 그러나 사용자의 로캘과 운영 체제 기본 설정에 따라 패턴을 자동으로 설정하는 것이 가장 좋습니다. 이렇게 하면 해당 문화에 적합한 결과를 얻는 데 도움이 됩니다.

DateTimeFormatter는 세 가지 표준 스타일(LONG, MEDIUM, SHORT)로 날짜 및 시간을 나타내고 CUSTOM 패턴을 사용할 수도 있습니다. 날짜와 시간에 서로 다른 스타일을 사용할 수 있습니다. 각 스타일에 사용되는 실제 패턴은 운영 체제에 따라 다소 달라집니다.

DateTimeFormatter 객체를 만들 때 스타일을 지정할 수 있습니다. 스타일 매개 변수를 지정하지 않으면 기본적으로 DateTimeStyle.LONG으로 설정되어 있습니다. 다음 예와 같이, 나중에 setDateTimeStyles() 메서드를 사용하여 스타일을 변경할 수 있습니다.

var date:Date = new Date(2009, 2, 27, 13, 1); 
var dtf:DateTimeFormatter = new DateTimeFormatter("en-US", 
    DateTimeStyle.LONG, DateTimeStyle.LONG); 
 
var longDate:String = dtf.format(date); 
trace(longDate); // March 27, 2009 1:01:00 PM 
 
dtf.setDateTimeStyles(DateTimeStyle.SHORT, DateTimeStyle.SHORT); 
var shortDate:String = dtf.format(date); 
trace(shortDate); // 3/27/09 1:01 PM

월 이름 및 요일 이름 지역화

많은 응용 프로그램에서 달력 표시에 월 이름 및 요일 이름 풀다운 목록을 사용합니다.

DateTimeFormatter.getMonthNames() 메서드를 사용하면 월 이름의 지역화된 목록을 가져올 수 있습니다. 운영 체제에 따라 정식 및 약식 목록을 얻을 수 있습니다. 정식 월 이름을 얻으려면 DateTimeNameStyle.FULL 값을 전달하고 약식 이름을 얻으려면 DateTimeNameStyle.LONG_ABBREVIATION 또는 DateTimeNameStyle.SHORT_ABBREVIATION 값을 전달합니다.

일부 언어에서는 월 이름이 날짜 서식에서 일 값 다음에 올 경우 소유격 형태로 바뀝니다. 월 이름을 단독으로 사용하려면 getMonthNames() 메서드에 DateTimeNameContext.STANDALONE 값을 전달합니다. 그러나 서식이 지정된 날짜에 월 이름을 사용하려면 DateTimeNameContext.FORMAT 값을 전달합니다.

var dtf:DateTimeFormatter = new DateTimeFormatter("fr-FR"); 
var months:Vector.<String> = dtf.getMonthNames(DateTimeNameStyle.FULL, 
        DateTimeNameContext.STANDALONE); 
trace(months[0]); // janvier 
months = dtf.getMonthNames(DateTimeNameStyle.SHORT_ABBREVIATION, 
         DateTimeNameContext.STANDALONE); 
trace(months[0]); // janv.

DateTimeFormatter.getWeekdayNames() 메서드는 요일 이름의 지역화된 목록을 제공합니다. getWeekdayNames() 메서드는 getMonthNames() 메서드와 동일한 nameStyle 및 context 매개 변수를 사용합니다.

var dtf:DateTimeFormatter = new DateTimeFormatter("fr-FR"); 
var weekdays:Vector.<String> = dtf.getWeekdayNames(DateTimeNameStyle.FULL, 
           DateTimeNameContext.STANDALONE); 
trace(weekdays[0]); // dimanche 
weekdays = dtf.getWeekdayNames(DateTimeNameStyle.LONG_ABBREVIATION, 
           DateTimeNameContext.STANDALONE); 
trace(weekdays[0]); // dim.

또한 getFirstWeekday() 메서드는 선택된 로캘에서 한 주의 시작을 나타내는 요일의 인덱스 값을 반환합니다.