今天被Architect问住了,说你光用一个TryParse就判断人家是不是时间日期型的,是不完整的。所以我花点时间看了下TryParse的用法。

MSDN:http://msdn.microsoft.com/en-us/library/system.datetime.tryparse.aspx

TryParse有两种格式,一个是不提供Culture的,这种直接用当前系统的Culture;另一种是提供指定CultureInfo和DateTimeStyle的,就是用指定的Culture去Parse。

不论哪一种,TryParse都会用当前Culture的DateTimeFormatInfo里面的所有Pattern(参见控制面板里面的区域语言设置的时间日期格式),尝试去Parse那个字符串,只要成功就算parse过去了,也许月日年根本就是不对的。

照MSDN上讲,如果当前的DateTimeFormatInfo里面没有能匹配的pattern,应该Parse失败才对。我当前Culture是en-US,我写了个2012年11月11日,照样能Parse成功。有点奇怪。但是想要Parse加拿大法语区的格式就没法parse,只能指定成fr-CA的Culture才可以。

       DateTime value;
var culture = System.Globalization.CultureInfo.CurrentCulture;
Console.WriteLine(culture.Name);
var style = System.Globalization.DateTimeStyles.None;
DateTime.TryParse("12月1日2012年", culture, style, out value);
Console.WriteLine(value);
culture = System.Globalization.CultureInfo.CreateSpecificCulture("fr-CA");
DateTime.TryParse(" 27. septembre 2003 16:34", culture, style, out value);
Console.WriteLine(value);
var datetimeformatinfo = System.Globalization.DateTimeFormatInfo.CurrentInfo;

结论呢,我哪知道我将面对的string是什么鸟格式,所以只能直接就TryParse了,利用CurrentCulture。你想做的精确的话,就告诉我Culture是什么。

http://blog.csdn.net/hoken2020856/article/details/8225433

[转载]DateTime TryParse的更多相关文章

  1. 在浏览器的JavaScript里new Date().toUTCString()后,传递给C# DateTime().TryParse()会发生什么?

    Format 1. Sun, 09 Oct 2016 13:24:35 GMT Format 2. Sun, 9 Oct 2016 13:36:09 UTC Format 1 是在IE里面产生的(Wi ...

  2. DateTime.TryParse 日期时间字符串验证

    DateTime applicationDatetime = new DateTime(); bool applicationDate = DateTime.TryParse("2019-0 ...

  3. DateTime TryParse方法,介绍

    1.与Date.Parse()方法的区别:Date.Parse(object o)方法接受一个object类型的参数,当参数为空或转换失败时会抛出异常DateTime.TryParse方法不会抛出异常 ...

  4. [转]C# ListView 单击标题实现排序(在转载的基础上有所完善)

    using System; using System.Collections; using System.Windows.Forms; //在转载的基础上有所完善 namespace TDRFacto ...

  5. 【AspNetCore】【WebApi】扩展Webapi中的RouteConstraint中,让DateTime类型,支持时间格式化(DateTimeFormat)

    扩展Webapi中的RouteConstraint中,让DateTime类型,支持时间格式化(DateTimeFormat) 一.背景 大家在使用WebApi时,会用到DateTime为参数,类似于这 ...

  6. C# DateTime和String转换

    "; DateTime.ParseExact(time,"yyyyMMdd",System.Globalization.DateTimeFormatInfo.Curren ...

  7. C# 字符串string类型转换成DateTime类型 或者 string转换成DateTime?(字符串转换成可空日期类型)

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

  8. 字符串string类型转换成DateTime或DateTime?类型

    常用的Convert.ToDateTime方法 //将含有正确日期格式的string类型转换成DateTime类型 string strDate = "2014-08-01"; D ...

  9. C#中DateTime应用

    编写一个控制台程序,输入一个日期,求下一天的日期. 要求如下:在控制台输入一个日期(分别输入年.月.日),判断输入的日期是否有效,如果有效,计算该日期的下一天日期,并显示:否则,输出"无效的 ...

随机推荐

  1. [老老实实学WCF] 第九篇 消息通信模式(上) 请求应答与单向

    老老实实学WCF 第九篇 消息通信模式(上) 请求应答与单向 通过前两篇的学习,我们了解了服务模型的一些特性如会话和实例化,今天我们来进一步学习服务模型的另一个重要特性:消息通信模式. WCF的服务端 ...

  2. 初识iOS9 iPad新特性SlideView和SplitView的适配

    苹果刚发布了iOS9,在iPad上新增了两个新的特性SlideView和SplitView,前者可以在不关闭当前激活APP的情况下调出来另外个APP以30%比例显示进行操作使用,后者允许同时运行两个A ...

  3. python基础:os模块中关于文件/目录常用的函数使用方法

    Python是跨平台的语言,也即是说同样的源代码在不同的操作系统不需要修改就可以同样实现 因此Python的作者就倒腾了OS模块这么一个玩意儿出来,有了OS模块,我们不需要关心什么操作系统下使用什么模 ...

  4. 8款给力HTML5/CSS3应用插件 可爱的HTML5笑脸

    1.HTML5/CSS3实现笑脸动画 非常可爱 今天我们要分享一款基于纯CSS3实现的笑脸动画,我们只要在面部滑动鼠标,即可让人物的眼睛嘴巴动起来,实现微笑的效果,还挺可爱的. 在线演示 源码下载 2 ...

  5. 让backspace键默认为删除键

    在/root/.bashrc  中插入一条: stty erase ^H

  6. svn不能更新也不能提交【svn A conflict in the working copy obstructs the current operation】

    SVN不能提交解决方法:          最近发现了svn有一种特殊的冲突,跟svn版本库同步的时候,还提示代码没有不一样的,但是文件图标上又是一个特殊的冲突符号,不是那种大红的冲突符号.更新不了也 ...

  7. js设计模式(6)---适配器模式

    0.前言 脖子又开始痛了,难道还没成为码农就开始出现颈椎问题,一直以来举得自己不算那种死宅的人,怎么这么年轻就出现这种问题.哎,不管了,还是先把自己学习的适配器模式写出来,算是一种总结吧. 1.为什么 ...

  8. 基础学习总结(五)---baseAdapter、ContentProvider

    小写转大写 : ctrl+shift+F <ScrollView></ScrollView>滚动条显示视图 ListView与BaseAdapter: public class ...

  9. winform Config文件操作

    using System;using System.Collections.Generic;using System.Text;using System.Xml;using System.Config ...

  10. jQuery select的操作代码

    jQuery對select的操作的实际应用代码. //改變時的事件  复制代码代码如下: $("#testSelect").change(function(){ //事件發生  j ...