NET问答: 为什么时间格式 dd/MM/yyyy 转成 DateTime 会报错?

咨询区

  • Shantanu Gupta

我在项目中碰到了一个需求,需要将字符串格式的 dd/MM/yyyy 转成 DateTime,比如下面这样:

class Program{static void Main(string[] args){var str= "22/11/2009";DateTime date = DateTime.Parse(str);}}

但很不幸,我的代码抛出异常了。

请问我该如何解决?不过我还意外发现 Parse 方法还有一个 IFormatProvider 参数的重载,不清楚是否它能解决?如果可以的话该怎么传?

回答区

  • Samuel Neff

你可以使用 ParseExact 方法,它需要你指定强转成 DateTime 需要的字符串格式,方法签名如下:


public static DateTime ParseExact(string s, string format, IFormatProvider? provider){}

所以你应该像下面这样使用。


DateTime date = DateTime.ParseExact(this.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);

值得一提的是,IFormatProvider 一定要适配该时间字符串格式的区域 Cluture,如果不确定的话,可以使用通用的 CultureInfo.InvariantCulture

  • Ricardo Sanchez

其实你抛异常的本质在于,你当前 Culture 的时间格式和你的需要强转的 字符串时间格式 是冲突的,要想解决的话,调整到正确的 Cluture 即可,参考如下代码。

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB"); //dd/MM/yyyythis.Text="22/11/2009";DateTime date = DateTime.Parse(this.Text);

或者改成这样。


using System.Globalization;DateTime date = DateTime.Parse(this.Text, CultureInfo.CreateSpecificCulture("en-GB"));

更多细节,参考这个链接:http://msdn.microsoft.com/en-us/library/5hh873ya.aspx

点评区

这个问题我其实挺感慨的,去年做新加坡的项目就被这玩意坑过,我们中国的时间格式大多是:yyyy/MM/dd ,新加坡的格式是这样的:Fri 30 Oct 22 2009,对,你没有看错,居然还有英文字母缩写,这两格式之间倒来倒去,绝对让你防不胜防 ????????????

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301750.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gallery with Video

2019独角兽企业重金招聘Python工程师标准>>> 实现较为完整的图片展示和视频播放功能(Image and video gallery),在FGallery-iPhone( http://code4app.com/codesample/4f67f4546803fa6d45000001)代码的基础上…

实用Python库,这几个你认识不?

近几年Python已成为数据科学行业中大火的编程语言。而作为人工智能核心的机器学习,是一门多领域的交叉学科,专门研究计算机模拟或实现人类学习行为的方法,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。简…

手把手教你构建WPF官方开源框架源代码

从去年微软就将 WPF 开源了,差不多现在所有 WPF 的源代码都开源了。在学习框架的时候,我会做一些改动,期望能构建一个自己的版本进行测试。但是作为一个特别大的框架,想要构建跑起来可不是直接在 VisualStudio 里面点击一下运行就…

程序员中的明星,超模or女团都是程序媛

全世界只有3.14 % 的人关注了数据与算法之美程序员改变世界已经有几十年的历史了,程序员出名又神秘——出名的是大家都知道程序员有多厉害,神秘的是外界对程序员的认知不够具体,“格子衫、双肩包、木讷、代码、……”程序员的标签有很多&…

php 实现类,php如何实现类

php如何实现类php实现类的方法是&#xff1a;【class 类名{ }】&#xff0c;如【<?php class Student { }】。类是由属性、方法、常量组成的&#xff0c;类名以字母、下划线开头&#xff0c;后面跟字母、数字、下划线。在PHP中实现类和对象(学习视频推荐&#xff1a;java课…

Id都是“とつくとき”这样的怎么爬,在线等,急

一般来说&#xff0c;我们推荐使用整数Id作为数据表的主键&#xff0c;这样可以提供不少好处&#xff1a;存储空间小&#xff0c;简洁易懂&#xff0c;方便分页、排序、索引。但当这种Id暴露到外部时&#xff0c;比如订单号&#xff0c;就存在一定的风险了。因为不管是自增、雪…

舍不得删的12个优质公号

全世界有3.14 % 的人已经关注了数据与算法之美在信息爆炸的时代快节奏的生活里 你是否曾有一瞬间觉得忙碌而空虚&#xff1f;以下12个优质公众号能让你在闲暇的时候不断的提升自我&#xff0c;拓宽视野愿以书卷气&#xff0c;行我路千里近现代史研究通讯ID&#xff1a;jxsdyjtx…

php 实现类,php 获取页面中指定内容的实现类

本文为大家下使用php如何获取页面中的指定内容&#xff0c;而且以封装成类&#xff0c;需要的朋友可以参考下本文功能&#xff1a;1.获取内容中的url&#xff0c;email&#xff0c;image。2.替换内容中的url&#xff0c;email&#xff0c;image。url&#xff1a;xxxemail&#…

FastTunnel-开源内网穿透框架

FastTunnelFastTunnel是用.net core开发的一款跨平台内网穿透工具&#xff0c;它可以实现将内网服务暴露到公网供自己或任何人访问。与其他穿透工具不同的是&#xff1a;FastTunnel项目致力于打造一个易于扩展、易于维护的内网穿透框架&#xff0c;任何人都可以基于该框架二次开…

系统架构师-基础到企业应用架构-服务层

一、上章回顾 上篇我们主要讲解了系统架构中的四种架构模式&#xff0c;并且分析了四种架构模式的实现及应用场景&#xff0c;那么先来回顾下架构中的业务逻辑层的使用及总结。 如果大家对图中讲述的内容不明白或者说是不深入那么可以参考上篇讲 解的内容&#xff1a;系统架构师…

Python 10大谬论

全世界只有3.14 % 的人关注了数据与算法之美谬误 #1: Python 是一门新语言伴随着所有的初创公司正在使用它以及孩子们最近也在学习它的事实&#xff0c;这个谬误为何仍然存在是可以理解的。实际上 Python 已经 超过23岁了, 它最初发布于1991年, 早于 HTTP 1.0协议 5年且早于 Ja…

【litrpa专题】首个rpa程序,使用litrpa采集百度地图地铁数据

RPA最近2年里红遍大江南北&#xff0c;人力成本上升&#xff0c;办公自动化势在必行&#xff0c;Excel长期肩负着办公自动化的重任&#xff0c;就算有【Excel催化剂】这些插件的把持&#xff0c;仍然有许多需求未能满足。笔者一直关注RPA领域&#xff0c;从广义来说&#xff0c…

不只是舒适,简直是享受,Google公司用的腰靠,到底有什么秘密?

▲数据汪特别推荐点击上图进入玩酷屋之前小木推荐“德国MINICUTE人体工学腰垫”受到了大家一致的好评和争相购买。小木为什么推荐这一款原因是&#xff1a;据统计&#xff0c;我国腰椎病患者已经突破2亿人。30~40岁人群中&#xff0c;患有颈腰椎病的占比59.1%&#xff01;而且有…

Python花呗分析模型温馨提醒:支出不规范,收入两行泪

全世界只有3.14 % 的人关注了数据与算法之美春节结束&#xff0c;离开家里混吃混喝的怀抱&#xff0c;我又开始了用花呗、还花呗的无限循环。花呗给人一种“有钱”的感觉&#xff0c;我不禁思考&#xff1a;像我这种发工资前靠花呗活着&#xff0c;一发工资就还花呗的平静什么时…

fiddler插件开发

Fiddler 是优秀的抓包工具&#xff0c;有着众多的优秀插件。Fiddler 软件是由C#语言开发的&#xff0c;运行在.net Framework 框架之上&#xff0c;所以我们也可以使用vs来开发自己的Fiddler插件&#xff0c;下面就介绍fiddler插件开发基本步骤。1.打开visual studio 创建一个V…

2500 万行的代码就问你敢不敢动?!

全世界只有3.14 % 的人关注了数据与算法之美近日&#xff0c;某网友在 Hacker News 上发起了一个 “你见过的最糟糕的代码是什么&#xff1f;” 的问题&#xff0c;引起了广泛关注和讨论&#xff0c;评论数已接近600条。其中&#xff0c;一位 ID 为“oraguy”的程序员对 Oracle…

WPF Grid添加边框的两种方法

最近项目中使用到了Grid表格&#xff0c;居然要加边框&#xff0c;查了一下&#xff0c;grid原生居然是不支持实线边框的。。最终我还是实现了效果&#xff0c;看看吧&#xff1a;左边是直接写的每行一个border,每列写一个border,这样在行列比较少的时候还行&#xff0c;如果多…

当初互联网大佬给的几块钱“羊毛”,现在又要我们加倍还回去!

全世界只有3.14 % 的人关注了数据与算法之美对于上班族来说&#xff0c;春节早就过去了&#xff0c;今天已经是上班的第N天了。不知道大家在春节七天有没有走进电影院呢&#xff1f;在春节档期的八部电影各有各的特色&#xff0c;数据汪一一看完之后真是爽歪歪&#xff01;但是…

在 dotnet runtime 的容器中安装 dotnet global tool

在 dotnet runtime 的容器中安装 dotnet global toolIntro.NET Core 从 2.1 开始支持 Global tool, 借助 global tool 我们可以通过命令行来实现很多功能&#xff0c;微软提供的一系列的 dotnet 诊断工具也都提供了 global tool&#xff0c;我们可以通过 global tool 比较方便的…

Asymptote 学习记录(2):例子阅读

学习编程的一个有效方式是去读别人写的代码.我学习了这里的代码.代码虽多,但是简单.代码如下(稍微做了修改): import settings; pdfviewer"/usr/bin/okular"; outformat"pdf"; size(400); texpreamble("\usepackage{CJK}\AtBeginDocument{\begin{CJK}…