c# 字符串string类型转换成DateTime类型

在c#中,string类型转换成DateTime类型是经常用到的,作为基本的知识,这里在此做个小结。一般来说可以使用多种方法进行转换,最常用的就是使用Convert.ToDateTime(string value)方法进行转换。


首先介绍最常用的Convert.ToDateTime方法,然后在说明其他的方法。下面这段代码是最常见的转换代码:

    //将含有正确日期格式的string类型转换成DateTime类型
    string strDate = "2014-08-01";
    DateTime dt1 = Convert.ToDateTime(strDate);
    //将包含时分秒的string类型日期转换成DateTime类型
    string strDateTime = "2014-08-01 10:57:31";
    DateTime dt2 = Convert.ToDateTime(strDateTime);

C#的类型转换还是十分方便的,这里要注意的是,传入的string类型的日期格式必须要正确,否则会跳出异常错误信息:该字符串未被识别为有效的 DateTime。正确的日期格式为 yyyy-MM-dd HH:mm:ss (2014-08-01 11:25:20)或者 yyyy/MM/dd HH:mm:ss (2014-08-01 11:25:20),还有其他格式这里就不列举了,网上搜索下C#日期格式就有了,这里提供下微软的MSDN官方文档。

这里是转换方法的文档说明:

        //
        // 摘要: 
        //     将日期和时间的指定字符串表示形式转换为等效的日期和时间值。
        //
        // 参数: 
        //   value:
        //     日期和时间的字符串表示形式。
        //
        // 返回结果: 
        //     value 的值的日期和时间等效项,如果 value 为 null
        // ,则为 System.DateTime.MinValue 的日期和时间等效项。
        //
        // 异常: 
        //   System.FormatException:
        //     value 不是格式正确的日期和时间字符串。
        public static DateTime ToDateTime(string value);

这里在介绍下其他的转换方法,我们还可以使用DateTime.Parse,DateTime.TryParse,DateTime.ParseExact和DateTime.TryParseExact这四个方法进行转换。

    /*声明要转换的日期格式字符串*/
    string strDateTime = "2014-08-01 13:52:05";

    /*使用DateTime.Parse方法进行转换*/
    DateTime dt1 = DateTime.Parse(strDateTime);

    /*
     * 使用TryParse方法进行转换             
     * 如果日期格式不正确则返回空值
     * 转换后的值自动赋值给传入的out形参dt2中
     */
    DateTime dt2;
    DateTime.TryParse(strDateTime, out dt2);

    /*
     * 使用ParseExact方法进行转换
     * 这里需要带入要转换的日期格式参数
     * 这里的日期格式可以自定义,比如yyyyMMddHHmmss,就可以传入20140801135205进行转换
     * 第三个参数是区域性特定格式信息,这里使用当前系统默认区域(即中国)             
     */
    DateTime dt3=DateTime.ParseExact(strDateTime,"yyyy-MM-dd HH:mm:ss",System.Globalization.CultureInfo.CurrentCulture);

    /*
     * 使用TryParseExact方法进行转换
     * 基本用法和大致参数ParseExact方法一样
     * 只是传入返回值的DateTime类型的out形参,这里是dt4
     * 第四个参数为:格式设置选项,既DateTimeStyles枚举,设置NONE即可
     */
    DateTime dt4;
    DateTime.TryParseExact(strDateTime, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None, out dt4);

这里要注意的是,如果是用Parse方法也是需要注意传入正确的日期格式,否则会有错误异常。但是如果使用TryParse方法则不用担心,错误的格式只会返回null空的DateTime类型回来。ParseExact和TryParseExact则是根据你传入的日期格式进行转换,这里可转换任意的日期格式,具体转换其他格式的日期字符串的内容,可以看这篇文章:C#中将自定义日期和时间格式的字符串转换成日期DateTime类型




原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/98335.html

(0)
上一篇 2021年8月21日 00:11
下一篇 2021年8月21日 00:11

相关推荐

发表回复

登录后才能评论