无法从字符串转换为日期时间C#

kra*_*mad -2 c# datetime parsing

我试图将字符串解析为Datetime,但它不起作用并给出错误:

"字符串未被识别为有效的DateTime."

字符串是完美的.

这是代码:

string deliv = DeliveryDateTextBox.Text;

string[] delivday = deliv.Split('-');
int year, month, day;

int.TryParse(delivday[0], out day);
int.TryParse(delivday[1], out month);
int.TryParse(delivday[2], out year);

string dtt = day + "/" + month + "/" + year;

DateTime datet = DateTime.ParseExact(dtt, "dd/MM/yyyy", null);

jobcard.DeliveryDate = datet;
Run Code Online (Sandbox Code Playgroud)

我调试的代码,它是给{01-01-0001 12:00:00 AM}datet.

Pet*_*r B 7

除了你应该使用的事实,new DateTime(year, month, day)甚至DateTime.TryParseExact(deliv, "d-M-yyyy", .... )是原始字符串......

您的呼叫DateTime.ParseExact()失败是因为您的输入字符串具有单个数字day和/或单个数字month,而您的模式dd/MM/yyyy要求两个数字都是两位数.

这可以通过使用d/M/yyyy模式来修复,它将接受单个和两个数字.但请不要,请看第一段!