字符串string类型转换成DateTime或DateTime?类型

时间:2021-07-13 13:07:59

常用的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();