我必须处理日期。如果我指定的格式是 mm/dd/yyyy 并且日期类似于 2013 年 7 月 5 日,则会引发格式异常。日期必须是 07/05/2013 吗?如果是,我如何以编程方式将日期从 2013 年 7 月 5 日更改为 2013 年 7 月 5 日?并且日期格式不具体。我可以在 mm-dd-yyyy 或 yyyy-mm-dd 中有日期,日期可以是 2013 年 7 月 5 日。
			
			13017 次
		
1 回答
            11        
        
		
使用该ParseExact方法,并将格式指定为M/d/yyyy(或d/M/yyyy,具体取决于您需要什么):
var date = DateTime.ParseExact(input, "M/d/yyyy");
还有一个可以处理多种日期格式的重载:
var date = DateTime.ParseExact(input, 
    new[] { "M/d/yyyy", "M-d-yyyy" }, 
    CultureInfo.InvariantCulture, 
    DateTimeStyles.None);
FormatException如果输入不是一种允许的格式,这可能仍然会抛出一个。为了更安全地处理这个问题,请看一下TryParseExact方法:
DateTime date;
var success = DateTime.TryParseExact(
    input, 
    new[] { "M/d/yyyy", "M-d-yyyy" }, 
    CultureInfo.InvariantCulture, 
    DateTimeStyles.None, 
    out date);
将日期转换回字符串时,不要忘记指定正确的格式 / 和不变的文化:
var output = date.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);
    于 2013-08-15T07:03:38.740   回答