52 votes

Comment analyser la date de l'en-tête HTTP Last-Modified ?

L'en-tête HTTP Last-Modified contient la date au format suivant (exemple) :
Wed, 09 Apr 2008 23:55:38 GMT
Quel est le moyen le plus simple d'analyser java.util.Date de cette chaîne ?

71voto

Shaun Points 938

Cela devrait être assez proche

String dateString = "Wed, 09 Apr 2008 23:55:38 GMT";
SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz");
Date d = format.parse(dateString);

SimpleDateFormat

63voto

Bozho Points 273663

DateUtil.parseDate(dateString) d'apache http-components

(héritage : DateUtil.parseDate(dateString) (de apache commons-httpclient))

Il a le format correct défini comme une constante, dont la conformité au protocole est garantie.

28voto

Stan Svec Points 157

Java.time

Lorsque vous utilisez le nouveau API Java pour la date et l'heure le code serait simplement :

ZonedDateTime zdt = ZonedDateTime.parse("Wed, 09 Apr 2008 23:55:38 GMT", DateTimeFormatter.RFC_1123_DATE_TIME);

El DateTimeFormatter prédéfinit une constante pour ce format particulier dans la classe RFC_1123_DATE_TIME . Comme son nom l'indique, RFC 1123 définit ce format.

23voto

ralfstx Points 1305

La RFC 2616 définit trois formats de date différents qu'un client conforme doit comprendre.

Le HttpClient Apache fournit un DateUtil conforme à la norme :

https://hc.apache.org/httpcomponents-client-4.3.x/httpclient/apidocs/org/apache/http/client/utils/DateUtils.html

https://apache.googlesource.com/httpclient/+/4.3.x/httpclient/src/main/java/org/apache/http/client/utils/DateUtils.java

Date date = DateUtils.parseDate( headerValue );

5voto

Jin Kwon Points 2191

Si vous utilisez URLConnection il existe déjà une méthode pratique.

Voir URLConnexion#getLastModified

Cette méthode analyse la chaîne de date et renvoie une valeur en millisecondes. Vous pouvez alors créer un Date avec cette valeur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X