赶紧重写 Java 的时间和日期 API 吧!

墙头草
 墙头草
发布于 2012年03月27日
收藏 9

最近 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   编译:伯乐在线 – 黄小非

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:赶紧重写 Java 的时间和日期 API 吧!
加载中

最新评论(26

风筝上的少年
风筝上的少年

引用来自“北京孤单漂”的评论

引用来自“Aeolus”的评论

引用来自“Joe Guo”的评论

Java是一种为设计而设计的语言,又臭又长。
本来是很简单的事情,Java会搞的巨复杂无比,Date是如此,list,set,map,iterator,file无不是如此,J2EE的东西更是如此。
现在慢慢的在远离Java

说明你没用好或者没用对。

说明你能力不行。。。

一边凉快去,不会用就一边去
北京孤单漂
北京孤单漂

引用来自“Aeolus”的评论

引用来自“Joe Guo”的评论

Java是一种为设计而设计的语言,又臭又长。
本来是很简单的事情,Java会搞的巨复杂无比,Date是如此,list,set,map,iterator,file无不是如此,J2EE的东西更是如此。
现在慢慢的在远离Java

说明你没用好或者没用对。

说明你能力不行。。。
夜明兔
夜明兔
ruby,rails表示时间,日期处理毫无压力。
假装是大神
假装是大神
joda-time呀,够简单了。
Aeolus
Aeolus

引用来自“Joe Guo”的评论

Java是一种为设计而设计的语言,又臭又长。
本来是很简单的事情,Java会搞的巨复杂无比,Date是如此,list,set,map,iterator,file无不是如此,J2EE的东西更是如此。
现在慢慢的在远离Java

说明你没用好或者没用对。
文星
文星

引用来自“Joe Guo”的评论

Java是一种为设计而设计的语言,又臭又长。
本来是很简单的事情,Java会搞的巨复杂无比,Date是如此,list,set,map,iterator,file无不是如此,J2EE的东西更是如此。
现在慢慢的在远离Java

这又臭又长的东东淘宝和Facebook还不是一样在用,开源中国社区也在用这个,看来java让你痛苦不堪呀。
J
Joe Guo
Java是一种为设计而设计的语言,又臭又长。
本来是很简单的事情,Java会搞的巨复杂无比,Date是如此,list,set,map,iterator,file无不是如此,J2EE的东西更是如此。
现在慢慢的在远离Java
阿影
阿影
还有夏令时,美国比较时兴的东西在里面。中国又用不到。
首席xx师
首席xx师

引用来自“腾勇”的评论

引用来自“和谐王”的评论

引用来自“范翠霞”的评论

还有Timestamp类,加上Date,Calendar,还有格式化之类。

我想说的是:有必要搞这么复杂吗?

94,php一句话搞定的东西java要好几句

+12306

呵呵
狄仁傑
狄仁傑
其實用習慣了感覺也沒啥不好的。。。。
返回顶部
顶部