this.Text = "22.11.2016";
DateTime.ParseExact(this.Text, "dd/MM/yyyy", null);
当我运行它时,它给我错误:
Error.String未被识别为有效的DateTime。处理您的请求时发生错误
答案 0 :(得分:3)
在您的示例中,您使用斜杠(/
)来解析ParseExtract()
中的日期,但在this.Text
中您的日期有点(.
)作为分隔符。
替换此行:
DateTime.ParseExact(this.Text, "dd/MM/yyyy", null);
这一个:
DateTime.ParseExact(this.Text, "dd.MM.yyyy", null);
此外,您可以更改this.Text
以使用斜杠,并且您的代码将正常运行。
答案 1 :(得分:3)
您可以提及多种格式,允许分隔符为.
或/
:
this.Text = "22.11.2016";
var result = DateTime.ParseExact(this.Text,
new string[] { "dd/MM/yyyy", "dd.MM.yyyy" },
null,
DateTimeStyles.AssumeLocal);
答案 2 :(得分:1)
您的文字采用此格式22.11.2016
,并且您尝试使用此格式22/11/2016
进行解析。
您有3个选项:
将this.Text
格式从this.Text="22.11.2016;"
更改为this.Text="22/11/2016";
将解析方法从DateTime.ParseExact(this.Text, "dd/MM/yyyy", null);
更改为DateTime.ParseExact(this.Text, "dd.MM.yyyy", null);
您可以通过调用Replace()
方法强制使用所需格式(种类):DateTime.ParseExact(this.Text.Replace('.', '/'), "dd/MM/yyyy", null);
答案 3 :(得分:0)
如果您的文化有.
作为日期分隔符,请传递文化
e.g。
this.Text = "22.11.2016";
DateTime dateTime =
DateTime.ParseExact(this.Text, "dd/MM/yyyy", new CultureInfo("de-DE"));
请注意/
是本地化日期分隔符的自定义格式说明符。 (https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx#dateSeparator)