Datum-Zeit-Angaben bei RSS2.0

08. September 2008
Als ich mich heute mit dem Thema Feeds auseinander setzte (ich wollte nun endlich auch im Blog Feeds anbieten), stieß ich auf folgendes Problem. Ich wußte nicht genau, wie die Datum- und Zeitangaben für das Element <pubDate> aussehen mussten. Welches Format wird hier verlangt?

Klar, im Internet fand ich zwar einiges zum Thema RSS-Feeds und ein paar Beispiele habe ich mir auch angesehen. Aber war es nun wirklich zwingend, dass die Datetime-Angaben immer das Format 'Wochentag, Tag Monatsname Jahr Zeitzone' (z.B. 'Sun, 07 September 2009 GMT') haben?

Kurz gesagt, ja. Das Format muss so aussehen! Bei Wikipedia wird hier auf die RFC #822 verwiesen und im Abschnitt "DATE AND TIME SPECIFICATION" (der RFC #822) findet man folgende Angaben zum Format:
 
date-time  = [ day "," ] date time                ; dd mm yy
                                                  ; hh:mm:ss zzz
day        =  "Mon"  / "Tue" /  "Wed"  / "Thu"
           /  "Fri"  / "Sat" /  "Sun"
date       =  1*2DIGIT month 2DIGIT               ; day month year
                                                  ; e.g. 20 Jun 82
month      =  "Jan"  /  "Feb" /  "Mar"  /  "Apr"
           /  "May"  /  "Jun" /  "Jul"  /  "Aug"
           /  "Sep"  /  "Oct" /  "Nov"  /  "Dec"
time       =  hour zone                           ; ANSI and Military
hour       =  2DIGIT ":" 2DIGIT [":" 2DIGIT]      ; 00:00:00 - 23:59:59

zone       =  "UT"  / "GMT"                       ; Universal Time
                                                  ; North American : UT
           /  "EST" / "EDT"                       ; Eastern:  - 5/ - 4
           /  "CST" / "CDT"                       ; Central:  - 6/ - 5
           /  "MST" / "MDT"                       ; Mountain: - 7/ - 6
           /  "PST" / "PDT"                       ; Pacific:  - 8/ - 7
           /  1ALPHA                              ; Military: Z = UT;
                                                  ; A:-1; (J not used)
                                                  ; M:-12; N:+1; Y:+12
           / ( ("+" / "-") 4DIGIT )               ; Local differential
                                                  ; hours+min. (HHMM)
 
Dabei bedeutet "1*2DIGIT" es sind hier eine Ziffer oder zwei Ziffern erlaubt. Der Slash bedeutet "entweder...oder...".

Per Vorgabe wird für die Zeitzone "UT" (Universal Time) verwendet, die die "GMT" (Greenwich Mean Time) abgelöst hat. Für den Raum Deutschland ergibt sich dann eine Differenz von +2 Stunden (MESZ) bzw. +1 Stunde (MEZ). Somit erklärt sich dann auch der Ausdruck "+0200" bei der Zonenangabe.

Die Datum-Zeit-Angaben im RSS-Feed richten sich also nach der Spezifikation RFC #822 - mit einer Ausnahme: man kann die Jahreszahl auch durch zwei Ziffern angeben, empohlen wird aber die Darstellung mit vier Ziffern.

Achso, die Datumsangabe kann auch - laut Wikipedia - der RFC #2822 entsprechen. Durch die RFC #2822 wird die RFC #822 obsolet.
 
Hast Du etwas dazu zu sagen? Dann tu's doch!
HILFE
Code-Beispiele werden mit den BBCodes [code][/code] dargestellt. Jedes Tag muss eine Zeile für sich allein haben, d.h der Beispiel-Code muss wirklich ZWISCHEN den Tags stehen. Beispiel:
[code] ACHTUNG! HIER UMBRUCH WICHTIG. TAG [code] MUSS ALLEIN STEHEN
#include <stdio.h>

int main( void ){
    return 0;
} ACHTUNG! HIER UMBRUCH WICHTIG. NACHFOLGENDES TAG [/code] MUSS ALLEIN STEHEN
[/code]

Alles was zwischen den beiden Tags [register] und [/register] eingetragen wird, ist nur für registrierte (und eingeloggte) User sichtbar.
Dein Name *
Deine Email
Deine Website
Vorschau