private string format = "dd/MM/yyyy HH:mm:ss";
DateTime fromdate = DateTime.ParseExact(GetFromScanDateTextBox.Text, format, CultureInfo.InvariantCulture);
执行此行字符串时,我收到错误,但未将其识别为有效日期时间。
我也尝试了这个,但它不起作用
DateTime fromdate = DateTime.ParseExact(GetFromScanDateTextBox.Text, format,null);
答案 0 :(得分:3)
答案 1 :(得分:2)
您告诉DateTime.ParseExact
您希望使用格式为dd/MM/yyyy HH:mm:ss
的字符串,但是您要为其提供格式为d/M/yyyy
的字符串。
您需要将格式更改为d/M/yyyy
。
另外,我建议使用DateTime.TryParseExact
验证字符串的有效性,而不是使用例外。
var okay = DateTime.TryParseExact(
input,
new[] { "dd/MM/yyyy HH:mm:ss", "d/M/yyyy" },
new CultureInfo("en-GB"),
DateTimeStyles.None,
out dateTime);
如果您的输入字符串可能会发生变化,TryParseExact
允许您定义多种格式,如上所示,或者,如果它始终与您当前的文化相符,只需执行DateTime.TryParse
和废除定义格式。
var okay = DateTime.TryParse(input, out dateTime);
答案 2 :(得分:-1)
如果您的格式始终为月/日/年,特别是在这种情况下(如果您的日期 2013年9月3日),您可以使用:
string format = "MM/dd/yyyy";
string dateTime = "9/3/2013";
dateTime = (dateTime.Split('/')[0].Length == 1 ? "0" + dateTime.Split('/')[0] : dateTime.Split('/')[0]) + "/" + (dateTime.Split('/')[1].Length == 1 ? "0" + dateTime.Split('/')[1] : dateTime.Split('/')[1]) + "/" + dateTime.Split('/')[2];
DateTime fromdate = DateTime.ParseExact(dateTime, format, CultureInfo.InvariantCulture);
答案 3 :(得分:-1)
请勿以格式部分
提供HH:MM:SS部分string format =“dd / MM / yyyy”; DateTime fromdate = DateTime.ParseExact(test.Text,format,CultureInfo.InvariantCulture);