DateTime.ParseExact发出意外错误

时间:2018-03-29 18:40:42

标签: c# asp.net .net

我遇到了一些我无法找到解决方案的问题。 这是我的代码

string DateString = System.DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt");
string Format = "dd/MM/yyyy hh:mm:ss tt";
DateTime DT = DateTime.ParseExact(DateString, Format, CultureInfo.InvariantCulture);
string DTE = DT.ToString("dd/MM/yyyy");

代码正在提取我在下面粘贴的错误。请告诉我究竟是什么问题(我的系统日期和时间已设置为这样的3/29/2018,我根本不想改变它)这里是错误

Error Picture

1 个答案:

答案 0 :(得分:0)

在DateTime转换为字符串期间,您还应该使用CultureInfo.InvariantCulture。如果你不这样做,DateString将被转换为你的机器文化,但你再转换回文化不变量。这可能会导致问题。

例如:当我使用你的代码时,DateString有" OS"将值重新设置为tt字段,之后我尝试使用CultureInvariant转换为DateTime,OS无法解决。

string DateString = System.DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
string Format = "dd/MM/yyyy hh:mm:ss tt";
DateTime DT = DateTime.ParseExact(DateString, Format, CultureInfo.InvariantCulture);
string DTE = DT.ToString("dd/MM/yyyy");