Hallo oxo888oxo,
du übersiehst, dass "GMT" nicht eine beliebige Zeichenfolge ist, sondern die Zeitzone angibt, für die diese Uhrzeit gilt. GMT heißt Greenwhich Mean Time, und die ist der CEST (oder MESZ = Mitteleuropäische Sommerzeit) 2 Stunden hinterher.
Demzufolge ist 13:07 GMT = 15:07 MESZ, und wenn Du hier in Deutschland um 13:00 lokaler Zeit einen Artikel publizierst, der auf 13:00 GMT datiert ist, dann veröffentlichst Du ihn 2 Stunden in der Zukunft.
Du musst also entweder das pubDate korrekt auf GMT umrechnen (sprich: wenn Du im Sommer um 13:07 lokaler Zeit publizierst, musst Du 11:07 GMT schreiben) oder Du musst die korrekte Zeitzone angeben. Und das ist in RSS nicht so einfach, schreibt die Wikipedia, weil Zeitangaben gemäß RfC 822 gemacht werden müssen und dieser RfC ist brutal USA-lastig. Die erlaubten Zeitzonen in RfC 822 sind
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)
UT/GMT ist Universalzeit, also Greenwhich-Zeit. In den USA kannst Du die Abkürzungen für Ost/Zentral/Gebirgs/Pazifik-Zeit in der Standard oder Daylight-Saving Variante verwenden, aber die mitteleuropäische Zone CET bzw. CEST/CEDT ist nicht zulässig. Erlaubt ist die militärische Schreibweise, mit N für MEZ Winterzeit (+1) und O für MESZ Sommerzeit (+2) oder die direkte Angabe des Zeitunterschied zu GMT, also +0100 im Winter und +0200 im Sommer.
Warum eine vierstellige Angabe? Es gibt ein paar Zwischenzeitzonen, z.B. hat Afghanistan +0430 und Nepal +0545. Und die Militärangabe geht in Kiribati kaputt, weil die Line-Islands auf UTC+14 liegen…
Vertrackt? In der Tat. Zeitangaben beinhalten böse Fallen.
Rolf
sumpsi - posui - obstruxi