/*十有三博客*/
  • 首页
  • 关于本站
  • 网站地图
  • 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 请求中时,会将敏感信息透漏给第三方网站"的问题

相关文章
  • Visual Studio Community 2013 (社区版)的一些相关问答
  • 翻译:Changes to the language setting will not take effect until the environment is restarted.
  • 解决C#获取SQL的timestamp类型到程序中为byte[]类型的问题
  • IIS上设置ARR导致所有网站无法正常打开
  • AntiForgeryToken生成过程解析-ASP.NET MVC防伪标记源码学习[上]
  • ASP.NET CheckBoxList控件动态修改ListItem选项的字体颜色和背景颜色

文章分类

.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安装升级失败和在安装前需要更新的问题
  • VS重构重命名的快捷键
  • Windows Server 2012无法安装 .NET3.5-安装角色或功能失败,找不到源文件

推荐文章

  • 骑马与砍杀 无限箭枝/作弊修改箭枝数量/调整各种箭枝数量的方法
  • oppo手机没有开发者模式,如何打开开发者模式和USB调试?
  • 网站用户体验优化之数值显示
  • ASP.NET MVC 表单提交多层子级实体集合数据到控制器中
  • 解决"无法启动此程序,因为计算机中丢失cudart32_60.dll。尝试重新安装该程序以解决此问题。"

友情链接

  • Passingwind的博客
  • 码友网

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