c# 判断字符串是否是日期格式需要注意的一点小问题


在很久很久以前,和很多同事一样。我习惯用DateTime.TryParse来判断。直到。。。。。。

 

直到有一个角度刁钻的客户,填了一个小数 133.3,后来告诉我程序报错了。

 

我当时看着程序运行的结果,exceuse me??什么鬼??

 

后来发现。DateTime.TryParse是可以通过类似 133.3,2018.12,7.5之类的带小数点的字符串的。但是也不是所有的带小数点的字符串都能通过。比方13.13就不能通过。

 

其实,这也算不上bug。是正常结果。133.3会转换成0133/3/1 0:00:00  。2018.12当然就是2018年12月1号了。7.5是今年的7月5号。13.13无法通过,是因为没有13月,所以无法通过。

 

原因就是小数点也被认作是一个日期的分隔符了。和'-' , '/' ,' '(空格) 等分隔符作用一样。然后也是一个合法的日期。所以小伙伴们如果小数会扰乱你的判断。最好预先排除掉小数点的可能性。其他分隔符一样的道理。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM