如何处理d / m / yyyy的日期?

我必须处理日期。 如果我指定的格式是mm / dd / yyyy且日期类似于2013年7月5日,则会抛出格式exception。 日期是否必须像2013年5月7日? 如果是,我如何以编程方式将日期从2013年7月5日更改为07/05/2013? 并且日期格式不具体。 我的日期可以是mm-dd-yyyy或yyyy-mm-dd,日期可以是7-5-2013。

使用ParseExact方法,并将格式指定为M/d/yyyy (或d/M/yyyy ,具体取决于您需要的内容):

 var date = DateTime.ParseExact(input, "M/d/yyyy"); 

还有一个可以处理多种日期格式的重载:

 var date = DateTime.ParseExact(input, new[] { "M/d/yyyy", "Md-yyyy" }, CultureInfo.InvariantCulture, DateTimeStyles.None); 

如果输入不是允许的格式之一,则可能仍会抛出FormatException 。 为了更安全地处理这个问题,请查看TryParseExact方法:

 DateTime date; var success = DateTime.TryParseExact( input, new[] { "M/d/yyyy", "Md-yyyy" }, CultureInfo.InvariantCulture, DateTimeStyles.None, out date); 

当您将日期转换回字符串时,不要忘记指定正确的格式/和不变文化:

 var output = date.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);