DateTime.Parse()适用于一台机器但不适用于另一台机器

Spe*_*ick -1 .net c#

我正在使用该Parse方法将a转换stringDateTime对象:

requestRecord.TerminationDate = DateTime.Parse(reader.ReadString("Termination_Date"));
Run Code Online (Sandbox Code Playgroud)

此代码在一台计算机上运行,​​但在另一台计算机上抛出异常.我认为问题可能与当地文化有关.查看两台计算机上的任务栏,抛出异常的任务栏具有日期,01/12/2014而另一台显示12/01/2014.

有没有什么方法可以重写上面的代码,以便它可以在两台机器上运行,而不管本地DateTime文化?

Pat*_*man 8

我猜两种机器的文化设置都不同.尝试提供格式.这解释了为什么在两台机器上对日期格式的解释不同:

requestRecord.TerminationDate = DateTime.ParseExact
                                ( reader.ReadString("Termination_Date")
                                , "dd/MM/yyyy"
                                , CultureInfo.InvariantCulture
                                );
Run Code Online (Sandbox Code Playgroud)

这样,您不依赖于机器及其设置,而是依赖于您所知的格式.

例如,根据reader您可能想要使用的内容reader.GetDateTime,它可以为您完成所有这些操作SqlDataReader.GetDateTime.

  • @Tigran:他正在"查看任务栏",而不是实际数据.他自我分析了这个问题,但不知道如何解决它. (2认同)