常用的Convert.ToDateTime方法
//将含有正确日期格式的string类型转换成DateTime类型 string strDate = "2014-08-01"; DateTime dt1 = Convert.ToDateTime(strDate); //将包含时分秒的string类型日期转换成DateTime类型 string strDateTime = "2014-08-01 10:57:31"; DateTime dt2 = Convert.ToDateTime(strDateTime);
还可以使用DateTime.Parse,DateTime.TryParse,DateTime.ParseExact和DateTime.TryParseExact这四个方法进行转换
/*声明要转换的日期格式字符串*/ string strDateTime = "2014-08-01 13:52:05"; /*使用DateTime.Parse方法进行转换*/ DateTime dt1 = DateTime.Parse(strDateTime);
/* * 使用TryParse方法进行转换 * 如果日期格式不正确则返回空值 * 转换后的值自动赋值给传入的out形参dt2中 */ DateTime dt2; DateTime.TryParse(strDateTime, out dt2);
/* * 使用ParseExact方法进行转换 * 这里需要带入要转换的日期格式参数 * 这里的日期格式可以自定义,比如yyyyMMddHHmmss,就可以传入20140801135205进行转换 * 第三个参数是区域性特定格式信息,这里使用当前系统默认区域(即中国) */ DateTime dt3=DateTime.ParseExact(strDateTime,"yyyy-MM-dd HH:mm:ss",System.Globalization.CultureInfo.CurrentCulture);
/* * 使用TryParseExact方法进行转换 * 基本用法和大致参数ParseExact方法一样 * 只是传入返回值的DateTime类型的out形参,这里是dt4 * 第四个参数为:格式设置选项,既DateTimeStyles枚举,设置NONE即可 */ DateTime dt4; DateTime.TryParseExact(strDateTime, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None, out dt4);
如何将string转换成DateTime?这种可空日期类型,使用NullableConverter类就可以轻松的进行转换。
/* 测试string类型转换成DateTime?类型*/ /*NullableConverter类构造函数必须传入要转换的类型*/ System.ComponentModel.NullableConverter nullableDateTime = new System.ComponentModel.NullableConverter(typeof(DateTime?)); /* *正常日期格式字符串转换为DateTime? */ string strDate = DateTime.Now.ToString(); DateTime? dt1=(DateTime?)nullableDateTime.ConvertFromString(strDate); Console.WriteLine("正常日期格式字符串转换成DateTime?:{0}", dt1); /* *字符串为空白转换为DateTime? */ strDate = string.Empty; DateTime? dt2 = (DateTime?)nullableDateTime.ConvertFromString(strDate); Console.WriteLine("空白字符串转换成DateTime?:{0}", dt2); /* *字符串为NULL转换为DateTime? */ strDate = null; DateTime? dt3 = (DateTime?)nullableDateTime.ConvertFromString(strDate); Console.WriteLine("NULL字符串转换成DateTime?:{0}", dt3); Console.Read();