为什么我可以将该代码应用于其他形式的.cs
string dt = day + "/" + month + "/" + year;
DateTime newDate = DateTime.ParseExact(dt, "dd/MM/yyyy", null);
它始终显示错误
字符串未被识别为有效的DateTime。
必须像这样改变
"dd/MM/yyyy" --> "d/M/yyyy"
但是在其他形式.cs中,该代码有效。不需要更改该字符串
答案 0 :(得分:3)
通过指定dd
和MM
,您需要输入宽度为2个字符。您的代码适用于10/10/2015
,但不适用于1/1/2015
。
将您的代码更改为允许单日和月份字符,您将没事:
DateTime newDate = DateTime.ParseExact(dt, "d/M/yyyy", null);
答案 1 :(得分:0)
我认为您的变量日期和月份不包含前导0,这就是您的解析无效的原因。以下是对MSDN页面的一些引用,您可以了解有关ParseExact和Time formats的更多信息
答案 2 :(得分:0)
dd/MM/yyyy
需要两位数的日期和月份,如10/09/YYYY
;而d/M/yyyy
接受一个或数字!
代码dt = day + "/" + month + "/" + year
不会将前导零添加到日期和月份。
我建议使用DateTime constructor,如
DateTime newDate = DateTime(year, month, day);
然后你就不会遇到字符串格式的任何问题。
答案 3 :(得分:0)
如果你知道日期部分,有一种简单的方法可以构建DateTime
:
:
int day = 1;
int month = 1;
int year = 2015;
DateTime newDt = new DateTime(year, month, day);
Console.WriteLine(newDt);
来自字符串:
string sday = "1";
string smonth = "1";
string syear = "2015";
DateTime newDts = new DateTime(int.Parse(syear), int.Parse(smonth), int.Parse(sday));
Console.WriteLine(newDts);