运行单元测试时遇到问题,以确保在传入无效的日期时间格式sting时来自api的正确响应。当传入日期字符串为" 0711"格式" 0711",api没有返回错误,而是将此日期设置为今天。
使用下面的示例 - DateTime.TryParseExact()返回true,将日期设置为今天。
DateTime.TryParseExact("1019", "1019", null, System.Globalization.DateTimeStyles.AssumeLocal, out result)
DateTime.TryParseExact("1a111", "1a111", null, System.Globalization.DateTimeStyles.AssumeLocal, out result)
如果字符串不匹配 例如
DateTime.TryParseExact("1019", "1018", null, System.Globalization.DateTimeStyles.AssumeLocal, out result)
这正确地返回false。
这是预期的行为吗?如果是这样,canyone可以解释内部运作吗? 除了检查字符串是否相互匹配之外,还有什么可靠的减轻方法?
答案 0 :(得分:1)
这是预期的行为吗?
是
如果是这样,任何人都可以解释内部运作吗?
您输入的数字只是作为文字读取,它们匹配。您的解析字符串中没有HH
,mm
或类似的标识符,因此没有要解析的实际日期。它默认为DateTime.Now
。
除了检查字符串是否相互匹配之外,还有什么可靠的方法来缓解这种情况?
使用实际的日期时间格式字符串,例如HHmm
。