HTTP Last-Modified encabezado contiene la fecha en formato siguiente (ejemplo):
Wed, 09 Apr 2008 23:55:38 GMT
¿Cuál es la forma más fácil de analizar java.util.Date de esta cadena?Cómo analizar la fecha del encabezado HTTP Last-Modified?
Respuesta
Esto debería ser 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);
DateUtil.parseDate(dateString)
de Apache HTTP-componentes
(legacy: DateUtil.parseDate(dateString)
(de Apache Commons-httpclient))
Tiene la formato correcto definido como una constante, que se garantiza que cumple con el protocolo.
+1 me gané :) – ZoogieZork
BTW, commons-httpclient ha sido reemplazado por org.apache.httpcomponents: httpclient. –
La clase ahora es org.apache.http.impl.cookie.DateUtils http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/impl/cookie/DateUtils.html – daveb
RFC 2616 define tres formatos de fecha diferentes que debe entender un cliente conforme.
El Apache HttpClient proporciona una DateUtil que cumpla con la norma:
Date date = DateUtils.parseDate(headerValue);
Solo un punto menor en caso de que la gente se confunda: el formato de fecha RFC es 1123, al que se hace referencia desde RFC 2616 aquí: http://www.w3.org/Protocols/rfc2616 /rfc2616-sec3.html#sec3.3.1 – daveb
"el formato de fecha RFC es 1123" que a su vez se refiere a RFC 822 – Raedwald
@Raedwald que a su vez es reemplazado por [RFC 2822] (https://www.ietf.org/rfc/ rfc2822.txt). – iain
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 un Date
con ese valor.
Tenga en cuenta que este método utiliza el método 'Date.parse' en desuso, al menos a partir de Oracle JDK 7, que _ parece_ para admitir los tres HTTP 1.1 [Fecha completa] (http : //www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1) formatos. –
java.time
Cuando se utiliza el nuevo Java Date and Time API el código sería simplemente:
ZonedDateTime zdt = ZonedDateTime.parse("Wed, 09 Apr 2008 23:55:38 GMT", DateTimeFormatter.RFC_1123_DATE_TIME);
El DateTimeFormatter
clase pre-define una constante para que formato particular en RFC_1123_DATE_TIME
. Como su nombre indica, RFC 1123 define ese formato.
Ver [código en vivo en IdeOne.com] (http://ideone.com/Fzh9Xw). –
- 1. analizar encabezado de respuesta http de wget
- 2. analizar un encabezado de solicitud HTTP Authorization con Python
- 3. ¿Cómo averiguar la longitud del encabezado HTTP de un paquete?
- 4. Cómo analizar la cadena de fecha hasta la fecha?
- 5. Cómo analizar correctamente las solicitudes HTTP entrantes
- 6. ¿Cómo obtener el archivo con la última fecha lastModified, en Java?
- 7. Configuración del encabezado HTTP Accept para JsonRestStore
- 8. ¿Cuál es el razonamiento detrás del encabezado HTTP Date?
- 9. fecha Analizar en MySQL
- 10. HTTP: Generando encabezado ETag
- 11. ¿Cuál es la función del encabezado HTTP "Vary: Accept"?
- 12. PHP eliminar encabezado HTTP
- 13. ¿Cómo se puede eliminar Nginx del encabezado de respuesta http?
- 14. ¿Qué es el "encabezado HTTP sin procesar"? ¿Cuál es la diferencia entre "encabezado HTTP" y "encabezado HTTP sin procesar"?
- 15. redirect_to con encabezado HTTP
- 16. HTTP rango encabezado
- 17. redirect_to custom http encabezado
- 18. encabezado HTTP Accept significa
- 19. PHP Analizar la cadena de fecha
- 20. Encabezado HTTP - ntCoent-Length
- 21. Sistema operativo del encabezado HTTP del agente de usuario
- 22. cómo analizar la salida de la nueva Fecha(). ToString()
- 23. Cómo analizar una solicitud HTTP en Java?
- 24. Cómo analizar una respuesta HTTP sin formato como HttpListenerResponse?
- 25. Cómo enviar un encabezado HTTP en java
- 26. NSURLRequest configurar el encabezado HTTP
- 27. ¿Cómo eliminar un encabezado de respuesta HTTP?
- 28. ¿Cómo interpretar el encabezado HTTP Aceptar vacío?
- 29. Cambiar la información del encabezado http para ocultar la información del servidor
- 30. javascript: cómo analizar una cadena de fecha
+1 casi correcto, el 'hh' debe ser' HH', ya que las horas son 0-23. – notnoop
Buena captura, corregida ahora – Shaun
También tuve la zona horaria "ZZZ" en lugar de "zzz". Espero que eso lo haga. Si todavía tiene problemas, puede consultar la documentación vinculada anteriormente. – Shaun