使用DateTime.ParseExact将字符串转为DD/MM/YYYY格式日期遇问题求助
解决字符串转日期的格式错误问题
嘿,我一眼就发现你代码里的问题啦!你遇到的日期格式错误,根源在于格式字符串里的大小写用错了。
在DateTime.ParseExact的格式规则里:
- 小写的
mm代表的是分钟(00-59) - 大写的
MM才是月份(01-12)
你原来的代码用了"dd/mm/yyyy",程序会把字符串里的05当成分钟来解析,而月份因为没有合法的传入值,默认会取1月,所以才会得到10/01/...的错误结果。
修正后的代码
String fd = "10/05/2018"; DateTime Finish = new DateTime(); Finish = DateTime.ParseExact(fd, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture).Date;
补充小提示
日期格式符是严格区分大小写的,常见需要注意的还有:
yyyy:4位完整年份(比如2018),yy是2位缩写年份(18)HH:24小时制的小时数,hh是12小时制的小时数ss:秒数
这样修改后,程序就能正确把"10/05/2018"解析为2018年5月10日啦!
内容的提问来源于stack exchange,提问作者Jack Henry
相关产品推荐
相关产品推荐

