威力强大的 DateTime.ParseExact


      参考:【TIPS-.NET DateTime Formating】 by 黑暗执行绪

在【TIPS-.NET DateTime Formating】一文中,有提供 String -> DateTime 的弹性做法,就是利用 DateTime.ParseExact() 方法,只要你知道来源的日期格式,就可以转换。

但是,事情往往没有那么顺利,在使用者输入内容后,从 TextBox 中取出来的字符串,不见得符合你的预期的格式,有可能字符串前、中、后多了一些空白、有可能 24 小时制与 12 小时制搞混写错了,有可能写【AM 与 PM】而不是【上午与下午】。

幸好 DateTime.ParseExact() 可以做到相当相当地弹性,例如:

string[] DateTimeList = {                             "yyyy/M/d tt hh:mm:ss",                             "yyyy/MM/dd tt hh:mm:ss",                             "yyyy/MM/dd HH:mm:ss",                             "yyyy/M/d HH:mm:ss",                             "yyyy/M/d",                             "yyyy/MM/dd"                         };  DateTime dt = DateTime.ParseExact(" 2008/  3/18   PM 02: 50:23  ",                                   DateTimeList,                                   CultureInfo.InvariantCulture,                                   DateTimeStyles.AllowWhiteSpaces                                  ); 宣告一个 String 数组 DateTimeList,内容值放置所有预期会客制化的日期格式,以符合各种字符串来源;使用 CultureInfo.InvariantCulture 解析各种国别不同地区设定;使用 DateTimesStyles.AllowWhiteSpaces 忽略字符串一些无意义的空白。如此一来,即使像 " 2008/3 /18 PM 02: 50:23 " 这么丑陋的字符串,也可以成功转到成 DateTime 型态。

 


  相关链接:
        北京网站建设    网站制作    网站制作套餐    网站维护    网站改版    网站推广    搜索引擎优化
        SEO建站    企业邮箱        虚拟主机    域名购买