我有一个以YYYYDDMM格式存储为字符串的日期.我想以'MM/DD/YYYY'格式显示该值.我用c#编程.我使用的当前代码如下:
txtOC31.Text = dr["OC31"].ToString().Trim();
strOC31date = dr["OC31DATE"].ToString().Trim();
DateTime date31 = DateTime.Parse(strOC31date);
strOC31date = String.Format("{0:MM/dd/yyyy}", date31);
Run Code Online (Sandbox Code Playgroud)
但是,我收到错误,因为YYYYMMDD字符串(strOC31date)未被识别为有效的日期时间.
Ste*_*eve 19
DateTime.ParseExact带有一个例子
string res = "20120708";
DateTime d = DateTime.ParseExact(res, "yyyyddMM", CultureInfo.InvariantCulture);
Console.WriteLine(d.ToString("MM/dd/yyyy"));
Run Code Online (Sandbox Code Playgroud)
Jam*_*are 11
当您尝试解析的字符串不是标准格式之一时,请使用ParseExact()(MSDN).这将允许您解析自定义格式,并将稍微更高效(我在这里的博客文章中比较它们).
DateTime date31 = DateTime.ParseExact(strOC31date, "yyyyMMdd", null);
Run Code Online (Sandbox Code Playgroud)
传递null格式提供程序将默认DateTimeFormatInfo.CurrentInfo为安全,但您可能希望使用不变文化:
DateTime date31 = DateTime.ParseExact(strOC31date, "yyyyMMdd", DateTimeFormatInfo.InvariantInfo);
Run Code Online (Sandbox Code Playgroud)
然后你的代码将工作.