我正在尝试将字符串转换为日期时间
我一直在使用
DateTime convertedDate = DateTime.Parse(lastModificationDate);
转换日期
我的问题是,有时日期是英国格式,有时是美国格式
即英国11/09/2011 10:34
美国2/28/2010 13:56
当我不确定字符串将采用哪种格式(即 us 或 uk)时,如何处理这两种格式?
我正在尝试将字符串转换为日期时间
我一直在使用
DateTime convertedDate = DateTime.Parse(lastModificationDate);
转换日期
我的问题是,有时日期是英国格式,有时是美国格式
即英国11/09/2011 10:34
美国2/28/2010 13:56
当我不确定字符串将采用哪种格式(即 us 或 uk)时,如何处理这两种格式?
你根本做不到。你没有足够的数据。作为人类,这里涉及哪个日期?
11/09/2011 10:34
是 9 月 11 日还是 11 月 9 日?
如果您无法分辨出人类的区别,那么计算机就没有机会这样做。
现在,如果您可以从同一数据源中的其他地方获得信号,那么这就是一个开始 - 例如,您可以试探性地尝试将所有日期解析为美国格式,将所有日期解析为英国格式,如果 100% 传递为英国格式,但 60% 的美国格式失败(由于试图将天数解析为无效月份),那么您可以合理地假设它们是英国日期。
不过,这永远不会是一个完整的解决方案——因为您可以拥有一个数据源,其中包含一堆日期,这些日期在两种格式中都是有效的(但具有不同的含义)。
出于这个原因,您应该以标准化格式(通常是 UTC)将日期时间存储在数据库中。
然后,您可以使用 javascript 等从 UTC 解析用户本地日期时间。