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

时间:2014-12-01 14:50:16

标签: c# .net

我使用Parse方法将string转换为DateTime对象:

requestRecord.TerminationDate = DateTime.Parse(reader.ReadString("Termination_Date"));

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

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

1 个答案:

答案 0 :(得分:8)

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

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

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

根据reader的内容,您可能希望使用reader.GetDateTime,它已经为您完成了所有这些工作,例如SqlDataReader.GetDateTime