Asserts that value exists, is a string, and can be parsed as a DateTime and returns it.
If value doesn't exist, this returns defaultValue.
defaultValue
DateTime asDateTimeOr(DateTime defaultValue) => asDateTime;