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

相关文章
  • IIS上设置ARR导致所有网站无法正常打开
  • ASP.NET MVC出现XML5632仅允许有一个根元素
  • Visual Studio Community 2013英文版安装中文语言包步骤
  • 解析ASP.NET中获取不到用户名及注销后User.Identity.IsAuthenticated值依然为true的原因
  • 命名空间System.Web中不存在类型或命名空间名称“Mvc” 是否缺少程序集引用?
  • 翻译:Changes to the language setting will not take effect until the environment is restarted.

文章分类

.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重构重命名的快捷键

推荐文章

  • Windows Server 2012 R2 更改计算机管理员账号提示“出现扩展错误,未能保存本地策略数据库”
  • 解决电脑突然死机后开机显示器黑屏无信号
  • OneNote如何取消共享笔记和删除邀请的用户
  • 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
  • 百度站内搜索如何设置和使用自定义样式设计(即不使用模板,使用自定义的模板)

友情链接

  • Passingwind的博客
  • 码友网

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