Adapted from net.i2p.router.util.RFC822Date.
This only supports parsing of the dates specified by Atom (RFC 4287)
and a couple of others.
In particular, 'T' is required, and either 'Z' or a numeric timezone offset is required,
unless there's no time fields at all.
The full variety of RFC 3339 (ISO 8601) dates is not supported by the parser,
but they could be added in the future.
See also: http://stackoverflow.com/questions/6038136/how-do-i-parse-rfc-3339-datetimes-with-java