move parse_iso8601() to webutil