Joda-Time 简介:既然无法摆脱时间,为何不设法简化时间处理?
2009-12-16 00:00:00 来源:WEB开发网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 类兼容的原因。
更通用一点的定义是:一个瞬间 就是指时间线上只出现一次且唯一的一个时间点,并且这种日期结构只能以一种有意义的方式出现一次。
- ››简介CentOS配置ssh系统技术
- ››Joda-Time 简介:既然无法摆脱时间,为何不设法简...
- ››Timer对象和TimerEvent事件
- ››简介:Oracle 11g分区
- ››Timeout error occurred trying to start MySQL D...
- ››简介穿过防火墙来远程控制协议分析仪
- ››简介Visual C++ 2008 Feature Pack
- ››简介使用Java编写Palm OS程序的解决方案
- ››简介使用Java编写PalmOS程序的解决方案
- ››TimerTask与Timer使用示范
- ››简介DB2 9.5和IBM Data Studio
- ››简介Mysql中的临时表使用方法
更多精彩
赞助商链接