do we really need to create a date object and check the validity? isn't `Date.UTC` expected to return `NaN` if arguments are invalid?