#2610 Use TimeSpan.TryParseExact to avoid parsing illegal strings, e.g "24:00:00" since h must be 0-23.