1、Date类的获取年月日的方法都划横线,不推荐使用了。
使用Calendar类获取,使用该类的setTime将Date转化为Calendar,再使用get()方法获取年月日等。
2、使用SimpleDateFormat类格式化日期型字符串时报错不能解析
从网上查了半天都没有找到问题所在,最后发现原因:
如果你设置的格式是年月日时分秒,则你要格式化的字符串也要有这些,否则报错。
比如我设置的格式是年月日时分秒,结果要格式化的字符串是年月日时分,没有秒,所以报错。代码如下:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");我要是格式化一个“2018-08-08 12:30"字符串就会报无法转化。
3、最让人绝望的问题-获取的月份和日不对
原因:我将设置的格式的字符串中的年份用的大写的,如
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm");
则打印出的被格式化成Date型的数据年份没有问题,但是月份变成了12月,日期变成了31日。解决方法:将年份改成小写就没有问题了。
网上的资料都是说年份不区分大小写,害人不浅。
总结:实践才是检验真理的唯一标准。