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

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

 2009-12-16 00:00:00 来源:WEB开发网   
核心提示: Calendarcalendar=Calendar.getInstance();DateTimedateTime=newDateTime(2000,1,1,0,0,0,0);System.out.println(dateTime.plusDays(45).plusMonths(1).dayOfW

Calendar calendar = Calendar.getInstance(); 
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"); 
calendar.setTime(dateTime.toDate()); 

就是这么简单。我完成了计算,但是可以继续在 JDK 对象中处理结果。这是 Joda 的一个非常棒的特性。

Joda 的关键日期/时间概念

Joda 使用以下概念,它们可以应用到任何日期/时间库:

不可变性(Immutability)

瞬间性(Instant)

局部性(Partial)

年表(Chronology)

时区(Time zone)

我将针对 Joda 依次讨论每一个概念。

不可变性

我在本文讨论的 Joda 类具有不可变性,因此它们的实例无法被修改。(不可变类的一个优点就是它们是线程安全的)。我将向您展示的用于处理日期计算的 API 方法全部返回一个对应 Joda 类的新实例,同时保持原始实例不变。当您通过一个 API 方法操作 Joda 类时,您必须捕捉该方法的返回值,因为您正在处理的实例不能被修改。您可能对这种模式很熟悉;比如,这正是 java.lang.String 的各种操作方法的工作方式。

瞬间性

Instant 表示时间上的某个精确的时刻,使用从 epoch 开始计算的毫秒表示。这一定义与 JDK 相同,这就是为什么任何 Joda Instant 子类都可以与 JDK Date 和 Calendar 类兼容的原因。

更通用一点的定义是:一个瞬间 就是指时间线上只出现一次且唯一的一个时间点,并且这种日期结构只能以一种有意义的方式出现一次。

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

Tags:Joda Time 简介

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