趕緊重寫Java的時間和日期API吧!

黃小非發表於2012-03-27

最近Java.net的投票問題是:“在Java 8中實現JSR-310(新的Java日期和時間API)有多麼重要? ”在這篇帖子釋出的時候,對該話題已經有超過150條回應。其中“覺得非常重要”(53%),“重寫當然更好,使用當前的API也不錯”(22%)這兩種觀點以壓倒性比例蓋過了其他各種意見。

顯然,對於重寫Java時間和日期API這件事情,有四分之三的回覆者認為,“重寫更好”或者“重寫很重要”。我的觀點同大多數人一樣,我認為如下的說法並不為過:“Java當前的Date類和Calendar類提供的方法並沒有和廣大開發者一同進步。”到目前我感到最驚奇的就是,居然有2%的人選擇了“我寧願使用當前的時間和日期類”,我都不禁懷疑,是不是這些API的作者們投了這2%的票呢?

趕緊重寫Java時間和日期API吧!

我多次使用過Java的日期/時間/日曆API。當我用它們的時候,我真的不喜歡它們,但是我強迫自己學會容忍他們。有的時候我甚至忘記了這些API有多麼噁心,直到我再次使用他們為止。我最近幫助過我的一個熟悉Java(但是不熟悉時間和日期API)的同事,企圖讓他學會如何使用Date/Calendar/String類進行配置和顯示。把這些亂七八糟的東西給他講清楚是如此的困難,因為利用這些過於靈活的API寫程式,對我自己來說本身就困難重重。從我同事的臉上,我看到了迷惑的表情,他一定認為我要麼在跟他開玩笑,要麼就是我自己都不明白自己在說什麼。儘管我可以讓這些API按照我的意圖工作,但是其難度遠遠超出了其應有的水平。

也有很多其他人表達了對使用Java時間/日期API所感到的痛苦。Rob Sanheim在2006年提出了時間和日期API的問題,並將其納入“最爛的5個Java API”的範疇(Calendar、Date和DateFormat/SimpleDateFormat)。2005年,Cameron Purdy的文章《七個可能造成功能性障礙的設計習慣》,把Java的日期處理API推上了風口浪尖。Tero Kadenius在2011年的文章《Java中的日期處理》再次提醒我們:“眾所周知,使用Java時間日期API寫程式是如此地痛苦。”2009年的一篇名為《Java日期如此糟糕》的帖子,可謂是名符其實。

目前Java.net的調查結果應證了我的觀點和大部分Java開發者是相同的。在閱讀了大量的文章和部落格後,我發現,絕大多數的Java開發這都迫切希望看到在Java中能出現一套更好的處理時間和日期的API。

 

英文原文:javacodegeeks   編譯:伯樂線上 – 黃小非

【如需轉載,請標註並保留原文連結、譯文連結和譯者等資訊,謝謝合作!】

 

相關文章