Joda-time使用介绍.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Joda-time使用介绍

Joda-Time 简介 既然无法摆脱时间,为何不设法简化时间处理? J Steven Perry, 首席顾问, Makoto Consulting Group, Inc. J Steven Perry 是一名软件开发人员、架构师和全能 Java 专家,他从 1991 年起就从事专业的软件开发。他的专业兴趣包括 JVM 的内部工作原理和 UML 建模,以及介于两者之间的所有内容。Steve 编写了从技术文档到 Java 代码 等各种内容,并且对教学和培训也充满了热情。Steve 是 Java Management Extensions (O’Reilly)的作者,Java Enterprise Best Practices (O’ Reilly)的合著者,并撰写了有关软件开发主题和 OReilly ShortCut: Log4J 的杂志文章。 在编写企业应用程序时,我常常需要处理日期。并且在我的最新项目中 — 保 险行业 — 纠正日期计算尤其重要。使用 java.util.Calendar 让我有些不安。 如果您也曾使用这个类处理过日期/时间值,那么您就知道它使用起来有多麻烦。 因此当我接触到 Joda-Time — 面向 Java 应用程序的日期/时间库的替代选择 — 我决定研究一下。其结果是:我很庆幸我这么做了。 Joda-Time 令时间和日期值变得易于管理、操作和理解。事实上,易于使用是 Joda 的主要设计目标。其他目标包括可扩展性、完整的特性集以及对多种日历 系统的支持。并且 Joda 与 JDK 是百分之百可互操作的,因此您无需替换所有 Java 代码,只需要替换执行日期/时间计算的那部分代码。 本文将介绍并展示如何使用它。我将介绍以下主题:  日期/时间替代库简介  Joda 的关键概念  创建 Joda-Time 对象  以 Joda 的方式操作时间 style  以 Joda 的方式格式化时间 Joda 简介 为什么要使用 Joda?考虑创建一个用时间表示的某个随意的时刻 — 比如, 2000 年 1 月 1 日 0 时 0 分。我如何创建一个用时间表示这个瞬间的 JDK 对象?使用 java.util.Date?事实上这是行不通的,因为自 JDK 1.1 之后的 每个 Java 版本的 Javadoc 都声明应当使用 java.util.Calendar。Date 中不 赞成使用的构造函数的数量严重限制了您创建此类对象的途径。 然而,Date 确实有一个构造函数,您可以用来创建用时间表示某个瞬间的对象 (除 “现在”以外)。该方法使用距离 1970 年 1 月 1 日子时格林威治标 准时间(也称为 epoch)以来的毫秒数作为一个参数,对时区进行校正。考虑 到 Y2K 对软件开发企业的重要性,您可能会认为我已经记住了这个值 — 但是 我没有。Date 也不过如此。 那么 Calendar 又如何呢?我将使用下面的方式创建必需的实例: Calendar calendar = Calendar.getInstance(); calendar.set(2000, Calendar.JANUARY, 1, 0, 0, 0); 使用 Joda,代码应该类似如下所示: DateTime dateTime = new DateTime(2000, 1, 1, 0, 0, 0, 0); 这一行简单代码没有太大的区别。但是现在我将使问题稍微复杂化。假设我希 望在这个日期上加上 90 天并输出结果。使用 JDK,我需要使用清单 1 中的代 码: 清单 1. 以 JDK 的方式向某一个瞬间加上 90 天并输出结果 Calendar calendar = Calendar.getInstance(); calendar.set(2000, Calendar.JANUARY, 1, 0, 0, 0); SimpleDateFormat sdf = new SimpleDateFormat(E MM/dd/yyyy HH:mm:ss.SSS); calendar.add(Calendar.DAY_OF_MONTH, 90); System.out.println(sdf.format(calendar.getTime())); 使用 Joda,代码如清单 2 所示: 清单 2. 以 Joda 的方式向某一个瞬间加上 90 天并输出结果 DateTime dateTime = new DateTime(2000

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档