The Last-modified header is stored for each feed as a string, not as a Datetime.

This is necessary because the specification says that If-Modified-Since must be a GMT datetime; however Ruby transforms GMT times to UTC, which is incompatible with some servers and throws weird errors (for instance xkcd.com responds with a 412 status code if we GET it with a UTC value in the If-Modified-Since header).

The best solution is just to store the value in the response Last-modified header as a string exactly as it is received from the server, without making any conversions.