Joda-Time简介:既然无法摆脱时间,为什么不设法简化时间处理?[Java编程]
本文“Joda-Time简介:既然无法摆脱时间,为什么不设法简化时间处理?[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在编写企业利用程序时,我常常需求处理日期.并且在我的最新项目中 — 保险行业 — 改正日期计算特别重要.利用 java.util.Calendar 让我有些不安.假如您也曾利用这个类处理过日期/时间值,那么您就知道它利用起来有多麻烦.因此当我接触到 Joda-Time — 面向 Java 利用程序的日期/时间库的替换挑选 — 我决意研究一下.后来果是:我很庆幸我这么做了.
Joda-Time 令时间和日期值变得易于管理、操作和理解.事实上,易于利用是 Joda 的主要计划目标.其他目标包含可扩大性、完好的特点集以及对多种日历系统的支持.并且 Joda 与 JDK 是百分之百可互操作的,因此您无需替换全部 Java 代码,只需求替换履行日期/时间计算的那部份代码.
Joda 大型项目
Joda 实际上是涵盖众多用于 Java 语言的替换 API 的大型项目,因此从技术上讲,利用 Joda 和 Joda-Time 名称表示相同的意思是一种误称.但在撰写本文之际,Joda-Time API 目前仿佛是唯一处于活泼开辟状况下的 Joda API.考虑到 Joda 大型项目的当前状况,我想将 Joda-Time 简称为 Joda 应当没什么问题.
本文将介绍并展示若何利用它.我将介绍以下主题:
日期/时间替换库简介
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-Time简介:既然无法摆脱时间,为什么不设法简化时间处理?[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |