zoukankan      html  css  js  c++  java
  • 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 
    复制代码
    有图有真相:
     
    参考:
  • 相关阅读:
    vue 多层级嵌套组件传值 provide 和 inject
    vue 消息订阅与发布 实现任意组件间的通信
    成功
    疯掉的拼接
    解析发送
    一条条发
    com发送
    字符串拼接
    COM
    笨方法的combox级联
  • 原文地址:https://www.cnblogs.com/itjeff/p/9018742.html
Copyright © 2011-2022 走看看