태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

Search

'역시 플래시는 노가다'에 해당되는 글 1건

  1. 2008/12/06 [AS3] RFC822 Date형 사용하기 (6)

[AS3] RFC822 Date형 사용하기

RIA/Flash 2008/12/06 23:59 Posted by 희희덕
AS3에는 String, Number, Date등 다양한 데이터형들이 있습니다. 이런 데이터형들을 적절히 사용해서 애플리케이션 개발에 아주 유용하게 활용할 수 있습니다.

데이터형에 관련해서는 아래의 문서를 참고해보시길 바랍니다.
액션스크립트3 최상위 전역함수

AS3의 전역함수중 Date라는 데이터형이 있습니다. 이를 활용해 날짜 및 시간정보를 나타낼수 있습니다.
예를들어, Date형을 이용해 날짜, 요일, 시각등의 정보를 추출할 수 있고, 또 두개의 변수의 데이터형이 Date일경우, 날짜를 비교할수도 있습니다.

그리고, Date형을 생성할때에는, 별도의 파라미터를 넣지않을경우 현재 시각으로 설정되지만, 파라미터를 설정할경우 과거나 미래의 시간으로 설정할 수 있습니다.

public function Date(yearOrTimevalue:Object, month:Number, date:Number = 1, hour:Number = 0, minute:Number = 0, second:Number = 0, millisecond:Number = 0)

Date형은 위와같이 년, 월, 일, 시간, 분, 초, 밀리초로 지정할 수 있습니다.

저는 최근 RSS리더기 애플리케이션을 만들면서, Date형의 처리에 관련해서 고민이 생겼습니다.
이 RSS리더기 애플리케이션의 경우 여러 블로그의 RSS를 수집해와서, 글이 작성된 시간 순으로 정렬을 해야했습니다.

하지만, RSS2.0의 스펙에 의하면, pubDate와 같은 날짜/시각정보들은 반드시 RFC 822라는 표준으로 정해져있습니다.

이 RFC 822로 작성된 날짜/시각정보는 아래와 같이 나오게 됩니다.
Fri, 05 Dec 2008 14:16:10 +0900

여기서 필자가 하게 된 고민은

1. Date형으로 시각을 설정할려면 파라미터에는 반드시 Number형으로 설정해야 한다.
2. 요일뒤에 붙는 저 콤마는 또 뭐냐 -_-;;
3. 시차정보나 이런건.. (GMT)


그래서
"RFC 822 형을 AS3에서 사용할려면 별도의 클래스를 만들어야 한다"
로 결론이 내려졌습니다.

제일 처음엔 이러한 RFC 822형을 AS3의 Date형으로 처리하기 위한 클래스를 개발하고 있었는데, 이와 관련된 클래스를 이미 어도비에서 개발해서 배포를 하고 있었습니다.

바로 AS3Corelib라는 라이브러리인데요.
AS3Corelib는 어도비에서 자체적으로 개발해 배포한 라이브러리로 MD5해시를 암호/복호화하거나, JSON 데이터를 처리하거나, 이미지 인코더등 상당히 유용한 클래스들이 다수 포함되어 있습니다.

AS3Corelib는 아래의 사이트에서 내려받을 수 있습니다.
http://code.google.com/p/as3corelib/

그럼 본론으로 돌아와서 RFC822형을 Date형으로 처리할려면
바로 Dateutil이라는 클래스를 활용하면 됩니다.

이 Dateutil이라는 클래스속에는 parseRFC822와 toRFC822라는 메서드가 있는데 두 메서드를 이용해 Date↔RFC822형으로 변환을 할 수 있습니다.



위는 Dateutil 클래스를 활용해 RFC822형을 Date형으로, 그리고 그 Date형을 다시 RFC822형으로 바꾸는 예시입니다.
이젠 별도의 노가다 없이 이 Dateutil만 활용하면 얼마든지 쉽게 Date형을 바꿀수 있겠죠?

위의 Dateuti은 특히 여러개의 rss의 정보를 받아오는 매쉬업애플리케이션을 개발할때도 상당히 유용하게 활용할 수 있습니다.
이외에 Dateutil의 클래스에는 W3C Date-time형을 Date형으로 바꾸어주는 메서드도 있습니다.(parseW3CDTF, toW3CDTF)
크리에이티브 커먼즈 라이선스
Creative Commons License