zoukankan      html  css  js  c++  java
  • [转载]DateTime TryParse

    今天被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

  • 相关阅读:
    十五、docker的隔离namespace和资源限制cgroup
    十四、docker-compose
    十三、搭建SSL的私有harbor仓库
    帆软常用JS
    oracle_ cursor.executemany
    sql常用语句
    考勤清洗
    JAVA基础教程day03--运算符
    B站视频爬虫
    ES6
  • 原文地址:https://www.cnblogs.com/iack/p/3767978.html
Copyright © 2011-2022 走看看