10

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

我一直在使用

DateTime convertedDate = DateTime.Parse(lastModificationDate);

转换日期

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

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

当我不确定字符串将采用哪种格式(即 us 或 uk)时,如何处理这两种格式?

4

2 回答 2

17

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

11/09/2011 10:34

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

如果您无法分辨出人类的区别,那么计算机就没有机会这样做。

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

不过,这永远不会是一个完整的解决方案——因为您可以拥有一个数据源,其中包含一堆日期,这些日期在两种格式中都是有效的(但具有不同的含义)。

于 2012-11-06T16:42:17.463 回答
1

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

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

于 2012-11-06T16:45:30.600 回答