Fix the timezone string parser so it won't choke on TZ=JST-9, etc.

The previous change in TZ_PATTERN may render the minutes part to be
null, so a null check is required before passing a captured value to
Integer.parseInt().