C# DateTime的 ParseExact和 TryParseExact 使用说明

最近需要把“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#中如果将一个字符串类型的日期转换成日期类型很方便的

即使用Convert.ToDateTime("2015/01/01").ToString()或DateTime.TryParse 可完成转换,前提是字符串里的格式必须是系统可以识别的日期格式
如:
yyyy-MM-dd
yyyy/MM/dd
等等....
如果字符串中的格式是自定义的话(yyyyMMdd),那么系统的方法就无法直接完成转换(虽然字符串的内容是日期,如20111021)
还好C#提供了强大的可自定义格式转换功能,可以完成自定义需求,不废话直接上代码在线Demo
复制代码
复制代码
/******************************************************************
 * 创建人: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 
复制代码
复制代码

 

有图有真相:
 
参考:

posted on   itjeff  阅读(28618)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示