RSS xml파일에서 특정 포맷의 DATE 문자열을 파싱해야 하는데요. 의미를 모르겠습니다.

Iinux의 이미지

2010-04-29T19:08:18+09:00

예를 들어 저렇게 되어 있는데요
대충... 2010년 04월 29일 19시 08분 18초의 의미인건 알겠더라구요

1. 중간에 'T'는 무슨 의미인지
2. 마지막에 +09:00 은 무슨의미 인지..
3. 이런게 체계적으로 정리되어 있는 다른 문서는 없는지..

rss 피드마다 날자 포맷이 다르던데요..
그래서 rss 피드마다 하드코딩해서 프로그램을 개발했는데요
뭔가 자동으로 판단할 방법은 없을까요?

답변 주시면 착하게 살겠습니다. ㅠㅠ

unsouled의 이미지

2010-04-29T19:08:18+09:00 은 우리나라 시간으로는 2010년 4월 30일 4시 8분 18초를 의미합니다.

ISO8601 형식으로 UTC 뒤에 Time zone descriptor(+09:00) 를 붙여 표현한 겁니다.
시간이라는 게 지역마다 다를 수 밖에 없으니, 세계적으로 공통으로 쓸 수 있는 시간(UTC)을 정하고 지역마다 시간차이를 붙여 시간을 표현하는 거죠.
(+09:00 의 시간대를 쓰는 지역이면 우리나라와 일본 및 비슷한 경도에 위치해 있는 지역이겠군요.)

중간 "T"는 아무 의미 없습니다. 파싱하기 편하라고 그냥 "여기서 부터가 시간이다"라고 표시해 두는 거죠.

그리고 RSS 의 날짜 포맷은 어쩔수 없이 case by case 로 처리해줘야 할 겁니다. 해당 rss 제공자가 어떤 식의 형식으로 표시할 지 알 수 없으니까요.
대부분의 rss feed parsing 라이브러리들도 경우에 따라서 다르게 파싱하는 식으로 처리되어 있습니다.

http://www.feedparser.org/docs/date-parsing.html

universal feed parser 라고 많이 쓰이는 피드 파서 라이브러리인데, 여기를 보시면 지원하는 date format 들을 확인해 볼 수 있습니다.

unsouled의 이미지

음.. 쓰고 나서 가물 가물해서 다시 찾아보니,
2010-04-29T19:08:18+09:00 는 우리나라 시간으로 2010년 4월 29일 19시 8분 18초가 맞는 것 같습니다;
UTC 와 Time zone descriptor로 표현하는 게 아니라 지역시간과 Time zone descriptor로 표현하는 게 맞습니다.

그러니까 우리나라 시간으로 2010년 4월 29일 19시 8분 18초(Time zone descriptor 가 +09:00 이니 UTC 로 2010년 4월 29일 10시 8분 18초)가 맞네요.

혼란스럽게 해서 죄송합니다.

Iinux의 이미지

답변 주셔서 감사합니다.

+09:00 Time zone이고 UTC에서 더해주는(+) 개념이군요..
다른 RSS는 (-)마이너스도 보이더라구요..
이제 이해가 되네요

^^ 감사합니다.
=====================

=====================

Scarecrow의 이미지

http://www.php.net/manual/en/function.strtotime.php

이걸로 하면 왠만하면 다 알아서 변환해 줍니다.
물론 안되는 경우도 가끔 있습니다.
rss의 date양식이 천차만별이라서...

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.