Expires Datum mit aktuellem Datum vergleichen

Status
Nicht offen für weitere Antworten.

Johannes L.

Aktives Mitglied
Hi,

mittels dem httpclient bekomme ich den Expires Header ja mit "Header expires = method.getResponseHeader("Expires");" Nun stellt sich mir aber die Frage wie ich das Datum mit dem aktuellen vergleichen kann (man müsste ja den Expires Header irgendwie in ein richtiges Datum also vom Typ Date bspw. umwandeln). Naja ich habe momentan keine Ahnung wie ich das machen soll :-/

Viele Grüße,
Johannes
 

HoaX

Top Contributor
mit simpledateformat kannst du angeben wie der string aufgebaut ist und dann entsprechend parsen lassen.
 

Johannes L.

Aktives Mitglied
HoaX hat gesagt.:
mit simpledateformat kannst du angeben wie der string aufgebaut ist und dann entsprechend parsen lassen.

Hmm, danke, also

Code:
/** Expires Header format. */
private final static DateFormat expiresFormat = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss zzz");
	
/** Expires Header as a date. */
private final Date expires;

...

final Header expires = method.getResponseHeader("Expires");
			
// Parse the expires header.
try 
{
  this.expires = expiresFormat.parse(expires.toString());
} 
catch (ParseException e) 
{
  logger.fatal("Bad date format in header: "+expires);
  throw new IllegalArgumentException("Bad date format in header: "+expires);
}

Ich bekomme immer die IllegalArgumentException beim parsen: java.lang.IllegalArgumentException: Bad date format in header: Expires: Mon, 01 Jan 2020 01:01:01 GMT

Das Format sollte doch stimmen!?
 

Johannes L.

Aktives Mitglied
HoaX hat gesagt.:
wenn ich das "Mon" zu "Mo" mache gehts. außerdem ist der 1.1.2020 ein mittwoch ;)

Hm seltsam, ich habe doch extra "EEE" angegeben, wie in der Dokumentation zur API beschrieben bzw. im Beispiel auch:

http://java.sun.com/javase/6/docs/api/java/text/SimpleDateFormat.html


Naja ich bekomme den Fehler aber auch bei "We, 01 Jan 2020 01:01:01 GMT"...

Ach und bei der Uhrzeit habe ich nun HH statt hh angegeben was ja richtiger sein dürfte, aber dennoch.
 

HoaX

Top Contributor
apidoc hat gesagt.:
Text: For formatting, if the number of pattern letters is 4 or more, the full form is used; otherwise a short or abbreviated form is used if available. For parsing, both forms are accepted, independent of the number of pattern letters.
ich seh nur das, wo steht da dass bei text immer die gegebene anzahl buchstaben erwartet/ausgegeben wird?
 

Johannes L.

Aktives Mitglied
Stimmt, mittlerweile bin ich aber echt nur noch am rumprobieren, ich habe nun
Code:
	private final static DateFormat expiresFormat = new SimpleDateFormat(
			"E, dd MMM yyyy HH:mm:ss 'GMT'");
aber klappt halt auch nicht bzw. die gleiche Exception tritt immer noch auf :-/
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W aktuelle Datum vom Server lesen! Netzwerkprogrammierung 5

Ähnliche Java Themen


Oben