Add support for offset based time zone designator

ISO 8601 has support for `+hh:mm` or `-hh:mm` time zone designator format in addition to the widely used `Z` suffix.

Caveat: This patch uses `%z` to parse these designators. `%z` *does* accept `+hhmm` and `-hhmm` which are not ISO 8601 compatible, but I think it's harmless.