您需要使用
DateTime.ParseExact格式
"dd/MM/yyyy"
DateTime dt=DateTime.ParseExact("24/01/2013", "dd/MM/yyyy", CultureInfo.InvariantCulture);如果您使用
d/M/yyyy该格式,它会更安全,因为它可以处理日/月的一位数字和两位数字。但这确实取决于您是否期望单位数字/两位数的值。
您的日期格式
day/Month/Year可能是某些区域性可接受的日期格式。例如,加拿大文化的
en-CA
DateTime.Parse工作方式如下:
DateTime dt = DateTime.Parse("24/01/2013", new CultureInfo("en-CA"));要么
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-CA");DateTime dt = DateTime.Parse("24/01/2013"); //uses the current Thread's culture上面的两行都可以使用,因为字符串的格式对于
en-CA区域性是可接受的。由于您没有为
DateTime.Parse通话提供任何区域性,因此您当前的区域性用于解析,不支持日期格式。在DateTime.Parse上了解有关它的更多信息。
解析的另一种方法是使用
DateTime.TryParseExact
DateTime dt;if (DateTime.TryParseExact("24/01/2013", "d/M/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt)){ //valid date}else{ //invalid date}该
TryParse组的.NET framework中的方法不会对无效值,抛出异常,相反,他们返回
bool表明解析成功或失败的价值。
请注意 ,我分别使用single
d和
Mday和month。单
d和
M适用于单/双数字日和月。因此,对于格式,
d/M/yyyy有效值可以是:
- “ 2013年1月24日”
- “ 2013年1月24日”
- “ 4/12/2013” // 2013年12月4日
- “ 2013年12月12日”
有关更多信息,请参见:自定义日期和时间格式字符串


![将dd / mm / yyyy格式的字符串转换为Datetime [重复] 将dd / mm / yyyy格式的字符串转换为Datetime [重复]](http://www.mshxw.com/aiimages/31/568563.png)
