- Java的
java.util.Date和java.util.Calendar类易用性差,不支持时区,而且他们都不是线程安全的; - 用于格式化日期的类
DateFormat被放在java.text包中,它是一个抽象类,所以我们需要实例化一个SimpleDateFormat对象来处理日期格式化,并且DateFormat也是非线程安全,这意味着如果你在多线程程序中调用同一个DateFormat对象,会得到意想不到的结果。 - 对日期的计算方式繁琐,而且容易出错,因为月份是从0开始的,从
Calendar中获取的月份需要加一才能表示当前月份。