2012-11-06 53 views
10

我试图将字符串转换为datetime字符串转换为DateTime在C#英国和美国的格式

我一直在使用

DateTime convertedDate = DateTime.Parse(lastModificationDate); 

的日期

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

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

当我不确定字符串将使用哪种格式时,如何处理这两种格式,即我们还是英国?

+0

,如果没有它是否是美国和英国,因为你可以有2个不同的含义相同的字符串一些迹象是不可能的解析,从UTC用户的本地日期时间。您的日期没有UTC版本吗? –

+1

@JustinHarvey:“UTC版”是什么意思? UTC不是格式。这两个值都可以采用UTC格式,格式不同。 –

回答

17

你从根本上不行。你没有足够的数据。作为人类,这里涉及哪个日期?

11/09/2011 10:34 

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

如果您不能区分为人类,那么计算机就没有机会这样做。

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

虽然这不会是一个完整的解决方案 - 因为你可以有一个数据源和一组日期,其中的所有两种格式都有效(但含义不同)。

+0

+ 1为长篇小说和简单的剪辑。 – Adil

+0

好的,谢谢你的帮助 – simon1230756

1

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

然后你就可以使用JavaScript等

+0

UTC不是格式,它是一个时区(有效)。此外,没有迹象表明这里安装了数据库。如果值*被存储在数据库中,则不应该以字符串格式存储。 –

相关问题