添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

最近项目中遇到以前一直困扰的问题,就是如何将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?类型,但是如果传入非法的日期格式的字符串会报错,需要另外处理。

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