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日。解決方法:將年份改成小寫就沒有問題了。
網上的資料都是說年份不區分大小寫,害人不淺。
總結:實踐纔是檢驗真理的唯一標準。