달력 날짜 및 시간 관리Flash Player 9 이상, Adobe AIR 1.0 이상 ActionScript 3.0의 달력 날짜 및 시간 관리 함수는 최상위 Date 클래스에 집중되어 있습니다. Date 클래스에는 UTC(Coordinated Universal Time) 또는 시간대별 현지 시간에서 날짜 및 시간을 처리할 수 있는 메서드 및 속성이 들어 있습니다. UTC는 기본적으로 그리니치 표준시(GMT)와 동일한 표준 시간 정의입니다. Date 객체 생성Date 클래스는 모든 기본 클래스 중에서 가장 다양한 생성자 메서드를 제공하는 클래스입니다. 이 메서드는 네 가지 방법으로 호출할 수 있습니다. 첫 번째로, 매개 변수가 없는 경우 Date() 생성자에서 사용자 시간대의 현지 시간을 기준으로 현재 날짜와 시간을 포함하는 Date 객체를 반환합니다. 다음 예제을 참조하십시오. var now:Date = new Date(); 두 번째로, 단일 숫자 매개 변수가 지정된 경우 Date() 생성자는 이를 1970년 1월 1일 이후로 경과된 밀리초로 처리하여 해당하는 Date 객체를 반환합니다. 즉, 전달된 밀리초 값은 표준시(UTC) 기준 1970년 1월 1일 이후로 경과된 밀리초로 처리됩니다. 하지만 Date 객체는 사용자가 UTC 특정 메서드를 사용하여 검색하고 표시하지 않는 한 현지 시간대로 값을 표시합니다. 단일 밀리초 매개 변수를 사용하여 새로운 Date 객체를 생성하는 경우 현지 시간과 표준시(UTC) 사이의 시차를 고려해야 합니다. 다음 명령문은 표준시(UTC) 기준 1970년 1월 1일 자정으로 설정된 Date 객체를 생성합니다. var millisecondsPerDay:int = 1000 * 60 * 60 * 24; // gets a Date one day after the start date of 1/1/1970 var startTime:Date = new Date(millisecondsPerDay); 세 번째로, 여러 숫자 매개 변수를 Date() 생성자로 전달할 수 있습니다. 생성자는 전달된 매개 변수를 각각 연, 월, 일, 시, 분, 초 및 밀리초로 처리하고 해당하는 Date 객체를 반환합니다. 이러한 입력 매개 변수는 표준시(UTC)가 아니라 현지 시간으로 간주됩니다. 다음 명령문은 현지 시간 2000년 1월 1일 자정으로 설정된 Date 객체를 가져옵니다. var millenium:Date = new Date(2000, 0, 1, 0, 0, 0, 0); 네 번째로, 단일 문자열 매개 변수를 Date() 생성자로 전달할 수 있습니다. 생성자는 해당 문자열을 날짜 및 시간 구성 요소로 파싱한 다음 해당하는 Date 객체를 반환합니다. 이 방법을 사용하는 경우 Date() 생성자를 try..catch 블록에 포함하여 모든 파싱 오류를 트랩하는 것이 좋습니다. Date() 생성자는 Adobe Flash 플랫폼용 Adobe ActionScript 3.0 참조 설명서에 나열된 여러 문자열 형식을 사용합니다. 다음 명령문은 문자열 값을 사용하여 새 Date 객체를 초기화합니다. var nextDay:Date = new Date("Mon May 1 2006 11:30:00 AM"); Date() 생성자가 문자열 매개 변수를 성공적으로 파싱하지 못하는 경우에도 예외가 발생하지 않습니다. 하지만 결과 Date 객체에 잘못된 날짜 값이 포함됩니다. 시간 단위 값 가져오기Date 클래스의 속성 또는 메서드를 사용하여 Date 객체 내의 여러 시간 단위 값을 추출할 수 있습니다. 다음 각 속성을 사용하여 Date 객체에서 시간 단위 값을 가져올 수 있습니다.
날짜 및 시간 계산 수행Date 클래스를 사용하여 날짜 및 시간에 대해 더하기 및 빼기를 수행할 수 있습니다. 날짜 값은 내부적으로 밀리초로 단위로 보관되므로 Date 객체에서 날짜 값을 더하거나 빼기 전에 값을 밀리초로 변환해야 합니다. 응용 프로그램에서 날짜 및 시간 계산을 많이 수행하는 경우에는 다음과 같이 상수를 생성하여 밀리초로 환산된 공통 시간 단위 값을 보관하는 것이 유용합니다. public static const millisecondsPerMinute:int = 1000 * 60; public static const millisecondsPerHour:int = 1000 * 60 * 60; public static const millisecondsPerDay:int = 1000 * 60 * 60 * 24; 표준 시간 단위를 사용하여 날짜 계산을 편리하게 수행할 수 있습니다. 다음 코드는 getTime() 및 setTime() 메서드를 사용하여 날짜 값을 현재 시간부터 한 시간으로 설정합니다. var oneHourFromNow:Date = new Date(); oneHourFromNow.setTime(oneHourFromNow.getTime() + millisecondsPerHour); 날짜 값을 설정하는 또 다른 방법은 단일 밀리초 매개 변수를 사용하여 새 Date 객체를 생성하는 것입니다. 예를 들어, 다음 코드는 한 날짜에 30일을 더하여 다른 날짜를 계산합니다. // sets the invoice date to today's date var invoiceDate:Date = new Date(); // adds 30 days to get the due date var dueDate:Date = new Date(invoiceDate.getTime() + (30 * millisecondsPerDay)); 그런 다음 millisecondsPerDay 상수에 30을 곱해 30일의 시간을 나타내고 그 결과를 invoiceDate 값에 더하여 dueDate 값을 설정합니다. 시간대 간 변환날짜 및 시간 계산은 날짜를 한 시간대에서 다른 시간대로 변환하고 싶은 경우에도 유용합니다. getTimezoneOffset() 메서드도 마찬가지이며, 이 메서드는 Date 객체의 시간대와 표준시의 차이를 분 값으로 반환합니다. 분 값으로 반환하는 이유는 일부 시간대가 시간 간격으로 시차가 설정되지 않고 옆 시간대에서 30분 차이가 나기도 하기 때문입니다. 다음 예제에서는 시간대 오프셋을 사용하여 현지 시간에서 표준시로 날짜를 변환합니다. 다음과 같이 먼저 밀리초 단위로 시간대 값을 계산한 다음 해당 값만큼 Date 값을 조정합니다. // creates a Date in local time var nextDay:Date = new Date("Mon May 1 2006 11:30:00 AM"); // converts the Date to UTC by adding or subtracting the time zone offset var offsetMilliseconds:Number = nextDay.getTimezoneOffset() * 60 * 1000; nextDay.setTime(nextDay.getTime() + offsetMilliseconds); |
|