3 回答

TA貢獻1805條經驗 獲得超10個贊
java.util.Calendar
// I "know" there are 12 monthsString[] monthNames = new String[12]; // and populate...String name = monthNames[calendar.get(Calendar.MONTH)];
令人驚訝的基數(1900年為日期的年份基數,不可否認為不推薦的構造函數;0作為兩個年份的月份基數) 可變性-使用不可變類型使其 多
更簡單地處理真正有效的東西 價值
一組不夠的類型:擁有 Date
和 Calendar
作為不同的事物,但是“本地”與“分區”值的分離以及日期/時間與時間的分離是缺失的。 一個API,它導致使用神奇常量的丑陋代碼,而不是明確命名的方法。 一個很難推理的API-所有關于什么時候被重新計算的業務等等。 使用無參數構造函數默認為“Now”,這將導致硬測試代碼。 這個 Date.toString()
實現,它總是使用系統本地時區(這使以前許多堆棧溢出用戶感到困惑)

TA貢獻1998條經驗 獲得超6個贊
java.util.Calendar
// I "know" there are 12 monthsString[] monthNames = new String[12]; // and populate...String name = monthNames[calendar.get(Calendar.MONTH)];
令人驚訝的基數(1900年為日期的年份基數,不可否認為不推薦的構造函數;0作為兩個年份的月份基數) 可變性-使用不可變類型使其 多
更簡單地處理真正有效的東西 價值
一組不夠的類型:擁有 Date
和 Calendar
作為不同的事物,但是“本地”與“分區”值的分離以及日期/時間與時間的分離是缺失的。 一個API,它導致使用神奇常量的丑陋代碼,而不是明確命名的方法。 一個很難推理的API-所有關于什么時候被重新計算的業務等等。 使用無參數構造函數默認為“Now”,這將導致硬測試代碼。 這個 Date.toString()
實現,它總是使用系統本地時區(這使以前許多堆棧溢出用戶感到困惑)
添加回答
舉報