老实说,我觉得 Java 的 Date API 是可用的。我所看到和听到的大多数问题都与冗长有关,需要涉及多个类来做任何有用的事情(Calendar、 Date、 DateFormat/SimpleDateFormat) ,缺少像 getDayOfWeek()这样的简单访问器。
Joda Time is a well-respected alternative API in Java, and in the Why Joda Time section it gives some more arguments as to why it is a viable alternative that might be of interest.
2.5 What need of the Java community will be addressed by the proposed
说明书?
目前,JavaSE 有两个独立的
Date and time API-java.util. Date
和 java.util.Calendar
一直被描述为难以
Java 开发人员在 weblog 和
值得注意的是,两者都使用零索引
几个月了,这是许多
日历也受到
许多错误和性能问题
年份,主要是由于储存
它的状态有两种不同的方式
在内部。
防止了一个典型的错误(4639407)
中创建的某些日期
日历对象,代码序列
could be written that could create a
在某些年份约会,但在其他年份不约会,
有阻止某些事情发生的效果
用户输入正确的
birth dates. This was caused by the
日历类只允许
日光节约时间增加一小时
in summer, when historically it was
加上2小时左右的时间
第二次世界大战,而这只虫子
现在固定,如果在某一点在
future a country chose to introduce a
日光节约时间增益
three hours in summer, then the
日历类将再次中断。
当前的 JavaSEAPI 也受到了影响
在多线程环境中。
已知不可变类是
本质上线程安全的状态
不能更改。但是,日期和
日历是可变的,这需要
程序员考虑克隆和
threading explicitly. In addition, the
lack of thread-safety in
DateTimeFormat 并不广为人知,
也是许多人难以
跟踪线程问题。
As well as the problems with the
Java SE 用于日期时间的类,
它没有模特课程
concepts. Non-time-zone dates or
times, durations, periods and
间隔没有类表示
因此,开发人员
经常使用 int 来表示
持续时间,使用 javadoc
指定单位。
缺乏一个全面的日期和
time model also results in many common
行动比他们更棘手
应该是。例如,计算
两次约会之间的天数
是一个特别困难的问题
现在。
这个 JSR 将解决
complete date and time model,
包括日期和时间
(不设时区)、持续时间及
时间周期、间隔、格式
和解析。
Reading the JavaDoc might lead one to think that the developers have actually got some good ideas. It goes on about the difference between 协调世界时 and 格林威治时间 at length, despite the fact that the difference between the two is basically leap seconds (which happen 漂亮很少).