Ну, я не видел большой активности по этому вопросу, поэтому я попытаюсь ответить на него, чтобы оказать помощь любому, кто ищет ответ в будущем. Тем не менее, я оставлю это открытым, чтобы дать другим возможность участвовать, если они захотят.
Так что было несколько вариантов, которые я рассмотрел ...
1)
В проекте Apache Commons HTTPClient есть класс DateUtil, который, как я надеялся, сработает. http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/util/DateUtil.html. Это обеспечивает удобные методы для форматирования даты в несколько стандартных форматов для передачи дат в заголовках http ... однако ни один из них, похоже, не соответствует в точности тому, что возвращал контейнер сервлета.
2)
Apache Commons также имеет класс Cookie в этом проекте, у которого есть метод "toExternalForm", который возвращает String. Пользуясь этим, я подумал, что, возможно, смог создать обычный файл cookie, вызвать «toExternalForm», а затем добавить «HTTPOnly». http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/Cookie.html. Это может сработать, но я не стал пытаться.
3)
Я наконец решил просто использовать шаблон, который соответствовал тому, что возвращал мой контейнер сервлета, независимо от того, был ли это стандартный формат или нет. Если это то, что возвращает контейнер сервлетов, то он должен работать, верно? Почему бы не ...
SimpleDateFormat COOKIE_EXPIRES_HEADER_FORMAT = new SimpleDateFormat("EEE, dd-MMM-yyyy HH:mm:ss zzz");
COOKIE_EXPIRES_HEADER_FORMAT.setTimeZone(new SimpleTimeZone(0, "GMT"));
Date d = new Date();
d.setTime(d.getTime() + 3600 * 1000); //1 hour
String cookieLifeTime = COOKIE_EXPIRES_HEADER_FORMAT.format(d);
response.setHeader("Set-Cookie", "test=somevalue; Domain=.mydomain.org; Expires=" + cookieLifeTime + "; Path=/; HTTPOnly");