# Expires Datum mit aktuellem Datum vergleichen



## Johannes L. (16. Jun 2007)

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 (16. Jun 2007)

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


----------



## Johannes L. (16. Jun 2007)

HoaX hat gesagt.:
			
		

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



Hmm, danke, also


```
/** 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!?


----------



## HoaX (16. Jun 2007)

wenn ich das "Mon" zu "Mo" mache gehts. außerdem ist der 1.1.2020 ein mittwoch


----------



## Johannes L. (16. Jun 2007)

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 (16. Jun 2007)

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. (16. Jun 2007)

Stimmt, mittlerweile bin ich aber echt nur noch am rumprobieren, ich habe nun

```
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 :-/


----------



## HoaX (16. Jun 2007)

wo siehst du dsa? das will ich sehn!


----------



## Johannes L. (16. Jun 2007)

HoaX hat gesagt.:
			
		

> wo siehst du dsa? das will ich sehn!



Ich denke du meinst mein missglücktes Zitat von dir (ein quote innerhalb eines quotes scheint wohl nicht zu gehen ;-))

Hm, keiner mehr eine Idee? :-/


----------

