Marshal Time zone and accept ENV["TZ"] values such as "JST-9"

Also fixes incorrect types for offset.

Fixes #1837.