第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么一月在Java日歷中是0月份?

為什么一月在Java日歷中是0月份?

拉風(fēng)的咖菲貓 2019-06-13 14:33:27
為什么一月在Java日歷中是0月份?在……里面java.util.Calendar,一月被定義為月份0,而不是月份1。有什么具體原因嗎?我見過很多人對此感到困惑.
查看完整描述

3 回答

?
holdtom

TA貢獻1805條經(jīng)驗 獲得超10個贊

它只是可怕的混亂的一部分,即JavaDate/TimeAPI。列出問題所在需要很長時間(我肯定我不知道其中一半的問題)。誠然,處理日期和時間是很棘手的,但是無論如何。

幫自己個忙,好好利用Joda時間相反,或者可能JSR-310.

編輯:至于為什么-正如在其他答案中所指出的,這很可能是由于舊的C API,或者僅僅是一種從0開始所有事情的普遍感覺.當(dāng)然,那一天從1開始。我懷疑在最初的實現(xiàn)團隊之外的人是否真的能說明原因,但我再次敦促讀者不要太擔(dān)心。為什么我們做出了錯誤的決定,看了看java.util.Calendar找點更好的。

有一點贊成使用基于0的索引是因為它使諸如“名稱數(shù)組”這樣的事情變得更容易:

// I "know" there are 12 monthsString[] monthNames = new String[12]; // and populate...String name = monthNames[calendar.get(Calendar.MONTH)];

當(dāng)然,一旦你拿到有13個月的日歷,這就失敗了.但至少指定的大小是您預(yù)期的月數(shù)。

這不是好的原因,但這是.a理由.。

編輯:作為一種評論,詢問一些關(guān)于我認(rèn)為日期/日歷有什么問題的想法:

  • 令人驚訝的基數(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ū)(這使以前許多堆棧溢出用戶感到困惑)


查看完整回答
反對 回復(fù) 2019-06-13
?
米琪卡哇伊

TA貢獻1998條經(jīng)驗 獲得超6個贊

它只是可怕的混亂的一部分,即JavaDate/TimeAPI。列出問題所在需要很長時間(我肯定我不知道其中一半的問題)。誠然,處理日期和時間是很棘手的,但是無論如何。

幫自己個忙,好好利用Joda時間相反,或者可能JSR-310.

編輯:至于為什么-正如在其他答案中所指出的,這很可能是由于舊的C API,或者僅僅是一種從0開始所有事情的普遍感覺.當(dāng)然,那一天從1開始。我懷疑在最初的實現(xiàn)團隊之外的人是否真的能說明原因,但我再次敦促讀者不要太擔(dān)心。為什么我們做出了錯誤的決定,看了看java.util.Calendar找點更好的。

有一點贊成使用基于0的索引是因為它使諸如“名稱數(shù)組”這樣的事情變得更容易:

// I "know" there are 12 monthsString[] monthNames = new String[12]; // and populate...String name = monthNames[calendar.get(Calendar.MONTH)];

當(dāng)然,一旦你拿到有13個月的日歷,這就失敗了.但至少指定的大小是您預(yù)期的月數(shù)。

這不是好的原因,但這是.a理由.。

編輯:作為一種評論,詢問一些關(guān)于我認(rèn)為日期/日歷有什么問題的想法:

  • 令人驚訝的基數(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ū)(這使以前許多堆棧溢出用戶感到困惑)


查看完整回答
反對 回復(fù) 2019-06-13
  • 3 回答
  • 0 關(guān)注
  • 1163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號