考虑以下代码片段:
DateTime dt = Convert.ToDateTime("06/16/2014 -0:10");
Console.Write (dt.ToString());
Console.ReadKey();
输出结果为
6/15/2014 8:10:00 PM
。这是在测试允许手动输入日期、小时和分钟(分别在ASP.Net文本框控件中)的Web应用程序时出现的,最初字符并没有被限制为仅数字(ASP .net验证器控件接受“-0”作为0..23范围内的整数)。
有人能解释一下这个字符串是如何转换成这个日期/时间的逻辑吗?我本来期望会抛出异常或者得到"6/16/2014 12:10:00 AM",因为"-0"和"0"是一样的("06/16/2014 0:10"转换为"6/16/2014 12:10:00 AM",正如我们所期望的那样)。