小写mm
表示分钟而不是月份,需要使用大写M
(单个字符)。
但你还需要使用ParseExact
with CultureInfo.InvariantCulture
。否则,您当前的区域性用于获取日期分隔符,这不一定是/
(在许多国家它是.
).
所以这适用于任何文化:
DateTime.ParseExact("19/8/1988", "dd/M/yyyy", CultureInfo.InvariantCulture)
Demo http://ideone.com/YsQ8wg
“/”自定义格式说明符 http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx#dateSeparator
如果你想验证给定的日期字符串,你可以使用DateTime.TryParseExact http://msdn.microsoft.com/en-us/library/vstudio/h9b85w22.aspx:
DateTime dt;
if(DateTime.TryParseExact("19/8/1988", "dd/M/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
{
// success, dt contains the correct date now
}
else
{
// not a valid date
}