格式化日期字符串時遇到的問題

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日。

解決方法:將年份改成小寫就沒有問題了。

網上的資料都是說年份不區分大小寫,害人不淺。

總結:實踐纔是檢驗真理的唯一標準。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章