我有以下代码行:
dt.Rows[0]["duedate"] = DateTime.ParseExact(textBox_duedate.Text, "dd-MM-yyyy", CultureInfo.InvariantCulture);
其中“duedate”是DataTable dt中的DateTime列。当我在具有.Net framework 3.5的Windows 7上运行它时,它运行正常但是当我在具有.Net framework 3.5的Windows xp SP3上运行它(它还安装了.Net framework 2.0)时,我的应用程序抛出异常“字符串不是被确认为有效的日期时间....“
当我在异常详细信息中看到“加载的程序集信息”时,似乎加载.net框架程序集版本2.0。这也可能是问题吗?此外,如何使我的应用程序使用.net程序集版本3.5?我正在Visual Studio 2010中编译我的应用程序。
任何帮助都将不胜感激。
答案 0 :(得分:0)
我认为这不是框架问题,因为它是OS当前文化的问题。这两款电脑的操作系统都有不同的文化设置,这就是为什么会出现这个问题。
试试这个
dt.Rows[0]["duedate"] = DateTime.ParseExact(textBox_duedate.Text,
new CultureInfo("en-US")).ToString("dd-MM-yyyy");
希望这会有所帮助!!
答案 1 :(得分:0)
也许输入字符串包含空格?在解析之前你可以Trim
。