Dateidatum bei ReceiveHTTPFile()

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
ProgOldie
Beiträge: 236
Registriert: 19.05.2012 17:09
Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02

Dateidatum bei ReceiveHTTPFile()

Beitrag von ProgOldie »

Hallo,
ich möchte das Datum der letzten Veränderung einer Download-Datei bestimmen können. Die Information bekomme ich wohl nur aus dem Header. Bisher habe ich immer folgendes Format der entsprechende Zeile gehabt:
Last-Modify: Mon 03 Oct 2014 07:36:12 GMT
Dann funktioniert folgende kleine Prozedur, die das Datum als Zahl zurückreicht:

Code: Alles auswählen

Procedure get_URLDate(URL.s)
  Define.i nr, RetVal,Monthnr
  Define.s Line, Header,RDate,months,Month,MonthStr
  months="JanFebMarAprMayJunJulAugSepOctNovDec"
  Header= GetHTTPHeader(URL)
  Repeat
   nr+1
   Line = StringField(Header, nr, #LF$)
   If Left(Line,6)="Last-M"                ;richtige Headerzeile für letzte Änderung
     RDate=Right(Line,Len(Line)-20)        ;Last-Modify und Wochentag am Anfang weg
     RDate=Left(RDate,Len(RDate)-5)        ; GMT am Ende weg 
     Month=Mid(RDate,4,3)
     Monthnr=Int(FindString(months,Month)/3)+1
     MonthStr=Str(Monthnr)
     If Monthnr<10                        ;für einziffrigen Monate 0 voranstellen
       Monthstr="0"+MonthStr
     EndIf
     RDate=ReplaceString(RDate,Month,MonthStr) 
     RetVal=ParseDate("%dd %mm %yyyy %hh:%ii:%ss",RDate)
   ElseIf  Left(Line,5)="Date:"            ;anderes Format wie z.B. Date: 
     
   EndIf
 Until Line = ""
 ProcedureReturn RetVal
EndProcedure
Im PB-Handbuch wird bei getHTTPHeader() aber auch folgende Headerzeile beschrieben, die ich bisher aber noch nicht angetroffen habe:
Date: Fri, 21 Mar 2008 09:49:30 GMT

Gibt es doch ein einheitliches Headerformat für die Datumsinformation?
Gibt es weitere Formate dafür?
Wenn es wirklich mehrere Formate gibt, wie macht es eigentlich ein Browser, der ja die Seite nur lädt, wenn sie ein aktuelleres Datum als die im Cache hat?
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Dateidatum bei ReceiveHTTPFile()

Beitrag von Kiffi »

ProgOldie hat geschrieben:Gibt es weitere Formate dafür?
hier ist beschrieben, wie das Datum lt. W3C auszusehen hat:

http://www.w3.org/Protocols/rfc2616/rfc ... l#sec3.3.1

Grüße ... Peter
a²+b²=mc²
Benutzeravatar
ProgOldie
Beiträge: 236
Registriert: 19.05.2012 17:09
Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02

Re: Dateidatum bei ReceiveHTTPFile()

Beitrag von ProgOldie »

Danke, Kiffi, eine sehr informative Quelle.
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18
Antworten