将字符串转换为C#UK和US格式的DateTime

时间:2012-11-06 16:40:30

标签: c#

我正在尝试将字符串转换为日期时间

我一直在使用

DateTime convertedDate = DateTime.Parse(lastModificationDate);

转换日期

我的问题是,有时日期将采用英国格式,有时采用美国格式

即英国11/09/2011 10:34 美国2/28/2010 13:56

当我不确定字符串的格式,即我们或英国时,如何处理这两种格式?

2 个答案:

答案 0 :(得分:17)

你根本不可能。您没有足够的数据。作为,这里涉及哪个日期?

11/09/2011 10:34

是9月11日还是11月9日?

如果您无法区分 human ,那么计算机就不可能这样做。

现在,如果您可以从同一数据源中的其他地方获取信号,那么这是一个开始 - 例如,您可以启发式尝试将所有日期解析为美国格式,并将所有日期解析为英国格式,如果为100 %传递为英国格式,但60%以美国格式失败(由于试图将天数解析为无效月份),那么您可以合理地假设它们是英国约会。

但这永远不会是一个完整的解决方案 - 因为你可以拥有一个数据源,其中包含两个格式的 all 有效(但含义不同)的日期。

答案 1 :(得分:1)

出于这个原因,您应该以标准格式(通常是UTC)将日期时间存储在数据库中。

然后,您可以使用javascript等解析来自UTC的用户本地日期时间。