WEB开发网
开发学院软件开发Java Joda-Time 简介:既然无法摆脱时间,为何不设法简... 阅读

Joda-Time 简介:既然无法摆脱时间,为何不设法简化时间处理?

 2009-12-16 00:00:00 来源:WEB开发网   
核心提示: 两者之间的差距拉大了(Joda 用了两行代码,JDK 则是 5 行代码),Joda-Time 简介:既然无法摆脱时间,为何不设法简化时间处理?(3),现在假设我希望输出这样一个日期:距离 Y2K 45 天之后的某天在下一个月的当前周的最后一天的日期,坦白地说,但是又能够使用 Joda 处理复杂的

两者之间的差距拉大了(Joda 用了两行代码,JDK 则是 5 行代码)。

现在假设我希望输出这样一个日期:距离 Y2K 45 天之后的某天在下一个月的当前周的最后一天的日期。坦白地说,我甚至不想使用 Calendar 处理这个问题。使用 JDK 实在太痛苦了,即使是简单的日期计算,比如上面这个计算。正是多年前的这样一个时刻,我第一次领略到 Joda-Time 的强大。使用 Joda,用于计算的代码如清单 3 所示:

清单 3. 改用 Joda

DateTime dateTime = new DateTime(2000, 1, 1, 0, 0, 0, 0); 
System.out.println(dateTime.plusDays(45).plusMonths(1).dayOfWeek() 
 .withMaximumValue().toString("E MM/dd/yyyy HH:mm:ss.SSS"); 

清单 3 的输出为:

Sun 03/19/2000 00:00:00.000

如果您正在寻找一种易于使用的方式替代 JDK 日期处理,那么您真的应该考虑 Joda。如果不是这样的话,那么继续痛苦地使用 Calendar 完成所有日期计算吧。当您做到这一点后,您完全可以做到使用几把剪刀修建草坪并使用一把旧牙刷清洗您的汽车。

Joda 和 JDK 互操作性

JDK Calendar 类缺乏可用性,这一点很快就能体会到,而 Joda 弥补了这一不足。Joda 的设计者还做出了一个决定,我认为这是它取得成功的构建:JDK 互操作性。Joda 的类能够生成(但是,正如您将看到的一样,有时会采用一种比较迂回的方式)java.util.Date 的实例(和 Calendar)。这使您能够保留现有的依赖 JDK 的代码,但是又能够使用 Joda 处理复杂的日期/时间计算。

例如,完成 清单 3 中的计算后。我只需要做出如清单 4 所示的更改就可以返回到 JDK 中:

清单 4. 将 Joda 计算结果插入到 JDK 对象中

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Joda Time 简介

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接