Pan*_*ong 2 c# string datetime .net-4.0
美好的一天,
在此之前,我在使用Microsoft Window XP的VM中使用了ac#系统.我有一些代码将字符串转换为日期时间,以下是我的代码的一部分:
DateTime allowDateTime = DateTime.Now.AddMonths(-2);
string formatted = allowDateTime.ToString("M/dd/yyyy");
DateTime dt = Convert.ToDateTime(formatted);
if (redempDateConvert < dt)
td.Text = "";
Run Code Online (Sandbox Code Playgroud)
在此之前,一切都运转良好.之后,我移动我的所有源代码,没有任何更改,数据库并在我的真实机器中设置它(Window 7).
系统工作正常,我仍然可以像往常一样登录并控制系统.
直到今天,我已触及此部分,并且浏览器显示错误消息:
String was not recognized as a valid DateTime.在第397行.
在这里,我再次显示了我的代码(附带说明):
DateTime allowDateTime = DateTime.Now.AddMonths(-2);
string formatted = allowDateTime.ToString("M/dd/yyyy");
DateTime dt = Convert.ToDateTime(formatted); //here is line 397, which is the error happening.
if (redempDateConvert < dt)
td.Text = "";
Run Code Online (Sandbox Code Playgroud)
我检查了两个(VM和我的真实机器)环境,两者都在.Net 4.0中运行.
只是好奇为什么相同的代码,但在我的真机中发生错误.我错过了配置的东西吗?好心提醒.
这是因为/默认日期分隔符,您的机器有不同的文化.如果您始终/作为日期分隔符获取并且具有接受-为日期分隔符的区域性,则它将失败.
使用ParseExact来避免不同文化的错误:
DateTime dt = DateTime.ParseExact(formatted, "M/dd/yyyy", null);
Run Code Online (Sandbox Code Playgroud)
上面的代码将使用/日期分隔符解析日期,无论您将使用哪种文化
| 归档时间: |
|
| 查看次数: |
40682 次 |
| 最近记录: |