技术开发 频道

年度回顾:JavaSE 7值得期待之处

  解决时间间隔问题

  现有Java的Date和Calendar类一直都未能满足开发者的需要,一直都是开发者们的痛处。JSR 310:数据和时间API(Date and Time API)的目的就是提供一个完整的、功能齐备的Date和Time API。

  JSR 310日期/时间API试图通过提供更好的性能和易用性改进Java的当前日期/时间API。例如,Java Calendar类将日期同时存储为与标准纪元之间的偏移量(以毫秒为单位)以及一组日历字段(例如,星期几、几号以及月份)。此双精度表示导致在意外的时间重新计算日历字段,从而产生不可预测的性能特点。与此相比,JSR 310类仅将日期/时间表示存储为与Date和Calendar所使用的同一标准纪元之间的偏移量(以毫秒为单位);仅当需要时才会计算日期等日历字段,并且不会使用这些日历字段进行内部日期表示。

  JSR 310还对当前Java日期/时间模型进行了改进。Java 6 API不包含表示本地时间(不具有关联时区的时间)、持续时间或时间间隔的类。这迫使程序员使用令人困惑的设计做法,例如使用int表示持续时间。JSR 310包含表示上述各个概念的类,从而可以进行更为明确的程序设计。

  最后,JSR 310 API通过使用不可改变的类努力实现线程安全。Java当前的日期/时间类Date和Calendar都是可改变的,因而都不是线程安全的。

0
相关文章