码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2017-07-26 23:32:13      阅读:521      评论:0      收藏:0      [点我收藏+]

标签:控制台应用程序   应用   编写   16px   sdn   相关   write   部分   lin   

【转载】

作者:十有三

出处: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

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

标签:控制台应用程序   应用   编写   16px   sdn   相关   write   部分   lin   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!