最近需要把“20121010”转换为“2012-10-10”格式,直接用Convert.ToDateTime("20121010"),系统报错“未被识别的DateTime类型”。
解决方法:
一、DateTime.ParseExact
string str = "20121010";
IFormatProvider ifp = new CultureInfo("zh-CN", true);
DateTime dt = DateTime.ParseExact(str, "yyyyMMdd", ifp);
MessageBox.Show(dt.ToString("yyyy-MM-dd"));
二、DateTime.TryParseExact
string str = "20121010";
DateTime dt;
IFormatProvider ifp = new CultureInfo("zh-CN", true);
if (DateTime.TryParseExact(str, "yyyyMMdd", ifp, DateTimeStyles.None, out dt))
{
MessageBox.Show(dt.ToString(("yyyy-MM-dd"));
}
在C#中如果将一个字符串类型的日期转换成日期类型很方便的

/****************************************************************** * 创建人:HTL * 创建时间:2015-04-08 15:36:35 * 说明:C# 使用DateTime.TryParseExact将字符串的自定义日期格式转换成日期类型 * DEMO Url:http://ideone.com/I6MuaZ * Email:huangyuan413026@163.com *******************************************************************/ using System; public class DateTime_TryParseExact_Demo { public static void Main() { string str = DateTime.Now.ToString("yyyyMMdd"); string[] format = {"yyyyMMdd"}; DateTime date; if (DateTime.TryParseExact(str, format, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out date)) { Console.WriteLine("Custom DateTime Type Convert success:"+date.ToString()); } else Console.WriteLine("Custom DateTime Type Convert error "); }//end Main }//end
有图有真相:
