Daten: Angaben zu Zeit und Aktualisierung

(Auszug aus "Newsfeeds mit RSS und Atom" von Heinz Wittenbrink, erschienen bei Galileo Press, 2005)

Wahrscheinlich ist außer dem Titel und dem Inhalt der item-Elemente keine Information in einem Newsfeed so wichtig für den Benutzer wie die Datumsangaben. Wenn der Feed und die Beiträge datiert sind, können sie automatisch zeitlich geordnet werden. Außerdem ist es möglich, nur neue oder veränderte Feeds oder Items anzuzeigen. Umgekehrt: Fehlen Angaben zum Datum eines Beitrags, kann der Feedreader bzw. der Benutzer nicht entscheiden, ob ein item gerade publiziert wurde oder aber schon Monate oder gar Jahre alt ist.

Außer dem Publikationsdatum kann auch ein Aktualisierungsdatum relevant sein. Wenn ein Aktualisierungsdatum angegeben ist, kann gezielt nach aktualisierten Feeds und Einträgen gesucht werdem. Es ist auch möglich, Nachrichten, die ein Betrachter bereits gesehen hat, dann anzuzeigen, wenn sie aktualisiert wurden.

Auf die Publikationsdaten beziehen sich die Elemente pubDate und lastBuildDate. Sie gehören bereits seit RSS 0.91 zum RSS-Vokabular. (Die drei Elemente skipHours, skipDate und ttl hängen mit den spezifischen Anforderungen von Aggregatoren zusammen und werden deshalb separat behandelt.)

Das Datumsformat von RSS 2.0

Eine Besonderheit von RSS 2.0 und seinen Vorgängern besteht in dem Format, in dem Daten angegeben werden. Daten müssen entsprechend RFC 822 formatiert werden. Bei RFC 822 handelt es sich um einen alten Standard aus der Frühzeit des Internet. Die Begründung dafür findet sich in einem anderen Dokument: RFC 822 sei weit verbreitet, da es für Datumsangaben im E-Mail-Verkehr verwendet wird. Es sei außerdem gut für Menschen lesbar. Ansonsten weist dieses Dokument noch fest entschuldigend darauf hin, dass die Entscheidung für das Format bereits 1997 gefallen sei. Zu den daraus resultierenden Problemen für Entwickler siehe z. B. den Artikel "Date Time Best Practices & RSS" von Lance Hunt.

Wie bildet man Daten nach RFC 822?

Zwei Beispiele zeigen, wie dieses Datumsformat aussieht:

  • Tu, 2 Feb 2005 08:15:48 +0100
  • Tu, 2 Feb 05 07:15:48 GMT

Am Anfang steht immer der Wochentag, der mit einer der englischen Abkürzungen Mon, Tue, Wed, Thu, Fri, Sat oder Sun angegeben wird. Es folgen die Angabe des Monatstages in einer oder zwei Ziffern und die Angabe des Monatsnamens wiederum mit einer englischen Abkürzung (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec). Für die dann folgende Jahreszahl können zwei oder vier Ziffern verwendet werden, wobei vier Ziffern vorzuziehen sind. Stunden, Minuten und Sekunden werden mit jeweils zwei Ziffern angegeben, sie sind durch einen Doppelpunkt voneinander getrennt. Die Differenz zu GMT kann mit vier Ziffern (für Stunden und Minuten) bezeichnet werden, alternativ dazu kann eine Zeitzone angegeben werden (UT, GMT, EST, EDT, CST, CDT, MST, MDT, PST, PDT). Die Angaben des Wochentags und der Sekundenzahl dürfen fehlen.

Das Element pubDate

Der Autor soll bestimmen, welches Datum innerhalb von pubDate angegeben wird. pubDate entspricht in seiner Funktion dem Publikationsdatum, das in einer gedruckten Veröffentlichung genannt oder bei einer Unterschrift festgehalten wird. Aktualisierungen oder unterschiedliche Versionen eines Feeds oder Eintrags sollten sich in diesem Datum nicht voneinander unterscheiden. Es lässt sich sowohl für einen ganzen Newsfeed wie für die einzelnen Nachrichten ein Publikationsdatum angeben. Fehlt bei einem Element item die Angabe von pubdate, gilt das Publikationsdatum des ganzen Kanals.

Die Spezifikation weist darauf hin, dass sich z. B. das Publikationsdatum der neuen Artikel der New York Times alle 24 Stunden ändert. pubDate dient also nicht dazu, das tatsächliche Entstehungsdatum eines Feeds zu protokollieren.

Das Publikationsdatum eines channel oder item ist nicht immer mit dem Datum identisch, das dem Benutzer angezeigt wird. Es ist durchaus möglich, dass es vom Feedreader entsprechend der Systemzeit des Rechners des Benutzers konvertiert wird. (Dazu ist es erforderlich, dass die Zeitzone des Datums in dem RSS-Feed korrekt angegeben wird.) Oft zeigt der Feedreader auch einfach das Datum an, an dem ein Informationsobjekt zum ersten Mal heruntergeladen wurde.

Die Spezifikation lässt es ausdrücklich zu, als Publikationsdatum einen in der Zukunft liegenden Zeitpunkt anzugeben. Eine Zeitangabe, die sich auf die Zukunft bezieht, sollte dazu führen, dass das entsprechende Informationsobjekt erst von diesem Datum an angezeigt wird (so genanntes scheduled publishing).

In dem folgenden Beispiel wird die Zeitzone auf zwei verschiedene Arten angegeben.

<channel>
<pubDate>Tu, 2 Feb 2005 08:15:48 +0100</pubDate>
  ...
  <item>
    <pubDate>Tu, 2 Feb 2005 07:15:48 GMT</pubDate>
    ...
  </item>
</channel> 

Code-Beispiel: Beispiel für die Verwendung von pubDate

Zu pubDate siehe auch die Seite Das Element pubDate der RSS 2.0-Referenz.

Das Element lastBuildDate (Unterelement von channel)

Das Datum innerhalb von lastBuildDate bezieht sich auf die letzte Version des Kanals selbst, also des RSS-Dokuments. (Allerdings ist die Spezifikation auch hier nicht ganz eindeutig, sie spricht von dem Datum, an dem der Inhalt des Kanals "zum letzten Mal generiert" wurde.) Es kann sich vom Publikationsdatum deutlich unterscheiden, da ein RSS-Dokument auch ältere Inhalte beschreiben kann.

RSS 1.0 verwendet für Daten das Dublin Core-Vokabular. Dabei lässt sich nicht zwischen Publikationsdatum und dem Datum der letzten Version unterscheiden – wobei allerdings der Zeitpunkt der Erzeugung des Feeds aus dem HTTP-Header hervorgehen sollte. Das Format für den Datumsstring entspricht dabei der ISO-Norm ISO 8601. Da RSS 2.0 die Erweiterung durch Namensräume zulässt, kann man auch das Dublin Core-Element date statt des RSS 2.0-Elements lastBuildDate in einem RSS 2.0-Dokument verwenden. Zu lastBuildDate siehe auch die Seite Das Element lastBuildDate der RSS 2.0-Referenz.

Generierte Zeitinformationen

Implizite zeitliche Informationen gehören zu jedem Feed. Außer den Daten, die in dem Dokument angegeben sind, kann die verarbeitende Software den Zeitpunkt verwenden, an dem sie eine Information bezogen hat. Außerdem stellt der HTTP-Header Infomationen darüber zur Verfügung, seit wann ein Dokument vorhanden ist und wann es modifiziert wurde. Da die Client-Software oft nur diese Inhalte verarbeitet, sind Zeitpunkte und Kalenderdaten, die in einem Newsreader dargestellt werden, nicht immer mit den im Feed angegebenen identisch.

   

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema Newsfeeds mit RSS und Atom bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: