当前位置:首页 > C#教程 > C#高级

C# string转换成DateTime?(字符串转换成可空日期类型)

【转载】

作者:十有三

出处:http://shiyousan.com/post/ca4a6413-ecb4-4237-baf6-e88e616d18fc

PS:此文主要讲述的是可空日期类型和字符串之间的转换,正常类型转换看这篇文章:字符串string类型转换成DateTime类型

最近项目中遇到以前一直困扰的问题,就是如何将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();
    

输出的结果是:

                    正常日期格式字符串转换成DateTime?:2013/11/5 15:49:16

                    空白字符串转换成DateTime?;

                    NULL字符串转换成DateTime?;

总结果上看可以顺利将空字符串和正常的字符串转换成DateTime?类型,但是如果传入非法的日期格式的字符串会报错,需要另外处理。

NullableConverter类主要提供可空类型与其基础基元类型间的自动转换。关于NullableConverter类的具体说明,可在网络上找到大量的资料,这里就不再叙述。这里是MSDN的描述:http://msdn.microsoft.com/zh-cn/library/system.componentmodel.nullableconverter(v=vs.85).aspx

原文:http://www.cnblogs.com/LILING3/p/7242184.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!