Jak parsować datę z ostatnio zmodyfikowanego nagłówka HTTP?
Http ostatnio zmodyfikowany nagłówek zawiera datę w następującym formacie (przykład):Wed, 09 Apr 2008 23:55:38 GMT
Jaki jest najprostszy sposób analizy java.util.Date z tego łańcucha?
5 answers
To powinno być całkiem blisko
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);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-21 00:29:07
DateUtil.parseDate(dateString)
z Apache http-components
(dziedzictwo: DateUtil.parseDate(dateString)
(z Apache commons-httpclient))
Ma prawidłowy format zdefiniowany jako stała, która jest gwarantowana jako zgodna z protokołem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-12 16:17:26
RFC 2616 definiuje trzy różne formaty dat, które klient musi zrozumieć.
Apache HttpClient dostarcza DateUtil zgodny ze standardem:
Date date = DateUtils.parseDate( headerValue );
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-21 13:43:52
Java.czas
Przy użyciu nowego Java API date and Time kod będzie po prostu:
ZonedDateTime zdt = ZonedDateTime.parse("Wed, 09 Apr 2008 23:55:38 GMT", DateTimeFormatter.RFC_1123_DATE_TIME);
The DateTimeFormatter
Klasa predefiniuje stałą dla danego formatu w RFC_1123_DATE_TIME
. Jak sama nazwa wskazuje, RFC 1123 definiuje ten format.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-06 05:44:43
Jeśli używasz URLConnection
s, istnieje już przydatna metoda.
Zobacz URLConnection#getLastModified
Ta metoda przetwarza łańcuch daty i zwraca wartość milisekund. Następnie możesz z radością utworzyć Date
z tą wartością.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-10 03:12:44