/*十有三博客*/
  • 首页
  • 关于本站
  • 网站地图
  • RSS订阅

C#中将自定义日期和时间格式的字符串转换成日期DateTime类型

2014-08-04 十有三 0 浏览:1万+ .NET技术 C#

本文介绍了在C#中如何将自定义日期和时间格式的字符串转换成日期DateTime类型的方法,所谓的自定义日期和时间格式的字符串指的是以特定的日期格式说明符组成的日期字符串,比如2014-08-05 13:01:30,日期格式说明符组成为 yyyy-MM-dd HH:mm:ss。

一般在程序中我们使用的都是常规的日期格式,比如 yyyy-MM-dd HH:mm:ss ,yyyy/MM/dd HH:mm:ss。但是总有列外,有时根据需求可能会有各种各样的日期格式,比如yyyy_MM_dd这样特殊的。因为日期格式的string类型要转换成DateTime类型必须要使用正确的日期格式。如果你的日期格式为yyyyMMddHHmmss这种自定义的日期格式,那么就无法将这个字符串转换成DateTime类型,必须使用特殊的方法进行转换。

正确的日期格式字符串要转换成日期类型直接使用Convert.ToDateTime(string value)方法或者DateTime.Parse(string s)方法即可。其他的则要使用DateTime.ParseExact方法进行转换,下面代码展示如何使用ParseExact方法进行转换(代码在控制台应用程序中运行):

    /*使用ParseExact方法进行自定义日期格式字符串转换*/
    DateTime dt = DateTime.ParseExact("20140804133047", "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture);
    /*输出最终获取的DateTime类型*/
    Console.WriteLine(dt.ToString("yyyy-MM-dd HH:mm:ss"));
    Console.ReadKey();
    /*最终输出结果为:2014-08-04 13:30:47 */

这里演示的是转换单个自定义日期格式字符串,如果要转换的字符串可能存在多种日期格式,可以使用DateTime.ParseExact方法的另外一个重载参数,具体代码如下(代码在控制台应用程序中运行):

    /*声明自定义日期格式字符串数组*/
    string[] arrDateTime = { "20140804133047", "2014/08/04/13/30/47", "2014-08-04 13:30:47", "2014/08/04 13:30:47" };
    /*声明允许转换的格式数组*/
    string[] arrFormat = { "yyyyMMddHHmmss", "yyyy/MM/dd/HH/mm/ss", "yyyy-MM-dd HH:mm:ss", "yyyy/MM/dd HH:mm:ss" };
    /*将所有不同格式的自定义日期格式字符串进行转换并显示*/
    foreach (string strDt in arrDateTime)
    {
            /*
            * 使用ParseExact方法进行多种日期格式匹配转换
            * DateTime.ParseExact(string s, string[] formats, IFormatProvider provider, DateTimeStyles style)
            */
        DateTime dt = DateTime.ParseExact(strDt, arrFormat, System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None);
        Console.WriteLine(dt.ToString());
    }

    Console.ReadKey();
    /*最终显示结果都是: 2014/8/4 13:30:47 */

这里成功的将4个自定义日期格式字符串都成功的转换成DateTime类型,使用DateTime.ParseExact的多格式匹配参数可以很好的实现这个功能。


作者:十有三

出处:https://shiyousan.com/post/635427752458313622

版权声明:本文采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。欢迎转载本文,转载请声明出处或保留此段声明。


  • 上一篇: C#中将一串数字格式字符串转换成日期DateTime类型
  • 下一篇: 解决"此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站"的问题

相关文章
  • C#中特殊字符存入MySql报错“ERROR 1366: Incorrect string value“
  • JSON劫持漏洞分析和攻防演练
  • C#如何根据输入的行数打印出由*星号组成的三角形
  • (译)在 ASP.NET中使用 XML-RPC 进行ping
  • ASP.NET HTTP 状态字符串无效
  • 解决Visual Studio Community 2013中文语言包安装失败导致无法使用的问题

文章分类

.NET技术 123 数据库 24 Web前端 21 网站建设运维 37 操作系统与应用 66 程序猿日常 11 开发工具 12 其他随笔 13

文章标签

ASP.NET ASP.NET MVC C# CSS HTML IIS Javascript Linux MongoDB MySql SQL SQL Server Visual Studio Windows系统 版本控制系统 插件工具 服务器 搞笑娱乐 好文分享 软件应用 生活知识 手机问题 随笔 网络知识 网站设计优化 网站维护 养生保健 异常处理 硬件设备 游戏攻略

热门文章

  • IIS8如何安装和使用URL重写工具-URL Rewrite
  • 林蛋大与楚中天,朱肚皮与朱月坡
  • 解决IE11安装升级失败和在安装前需要更新的问题
  • Windows Server 2012无法安装 .NET3.5-安装角色或功能失败,找不到源文件
  • VS重构重命名的快捷键

推荐文章

  • 分享outlook红色感叹号/设置重要性的使用技巧
  • Visual Studio Community 2013无法折叠代码块
  • ASP.NET 验证码插件 BotDetect CAPTCHA
  • WP系统升级出现已下载但无法打开(8018830f)
  • 解决Visual Studio 起始页中"最近的项目"没有记录最近使用的项目和解决方案

友情链接

  • Passingwind的博客
  • 码友网

知识共享许可协议 CC BY-SA 4.0本站作品采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。
闽ICP备15003702号
闽公网安备 35020302035102号