3 回答

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

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