modified - java 8 http
Cómo analizar la fecha del encabezado HTTP Last-Modified? (5)
El encabezado HTTP Last-Modified contiene la fecha en el siguiente formato (ejemplo):
Wed, 09 Apr 2008 23:55:38 GMT
¿Cuál es la forma más fácil de analizar java.util.Date desde esta cadena?
java.time
Al usar la nueva API de fecha y hora de Java, el código sería simplemente:
ZonedDateTime zdt = ZonedDateTime.parse("Wed, 09 Apr 2008 23:55:38 GMT", DateTimeFormatter.RFC_1123_DATE_TIME);
La clase DateTimeFormatter
define previamente una constante para ese formato particular en RFC_1123_DATE_TIME
. Como su nombre indica, RFC 1123 define ese formato.
Esto debería estar bastante cerca
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);
RFC 2616 define tres formatos de fecha diferentes que un cliente conforme debe comprender.
Apache HttpClient proporciona un DateUtil que cumple con el estándar:
Date date = DateUtils.parseDate( headerValue );
Si está utilizando URLConnection
s, ya existe un método práctico.
Ver URLConnection#getLastModified
Este método analiza la cadena de fecha y devuelve un valor de milisegundos. Entonces puedes crear felizmente una Date
con ese valor.
DateUtil.parseDate(dateString)
de apache http-components
(legacy: DateUtil.parseDate(dateString)
(desde apache commons-httpclient))
Tiene el formato correcto definido como una constante, que garantiza que cumple con el protocolo.