Java开发中对于日期、时间的操作非常频繁,但是使用java.util.Calendar让人感到无比郁闷。
Joda-Time提供了一组Java类包用于处理包括ISO8601标准的date和time。可以利用它把JDK Date和Calendar类完全替换掉,而且仍然能够提供很好的集成。并且 Joda 与 JDK 是可互操作的。
以下通过对比DateTime和Calendar的使用让我们来了解下DateTime的更加方便的用法。
1 创建2016-07-22 10:00:01的对象
Calendar c = Calendar.getInstance(); c.set(2016,Calendar.JULY,22,10,0,1);
Joda定义如下
DateTime dateTime = new DateTime(2016,7,22,10,0,1);
2 在这个时间点上加90天
Calendar calendar = Calendar.getInstance(); calendar.set(2016, Calendar.JULY, 22, 10, 0, 1); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); calendar.add(Calendar.DAY_OF_MONTH, 90); System.out.println(sdf.format(calendar.getTime()));
Joda实现如下
DateTime dateTime = new DateTime(2016, 7, 22, 10, 0, 1); DateTime dateTime90 = dateTime.plusDays(90); System.out.println(dateTime90.toString("yyyyMMddHHmmss"));
3 计算某个时间点在90天后的某天在下一个月的当前周最后一天的日期
Joda很轻易的实现了:
DateTime day = dateTime.plusDays(90).plusMonths(1).dayOfWeek().withMaximumValue(); System.out.println(day.toString("yyyyMMddHHmmss"));
那么calendar该如何实现呢?大家自己想吧
4 Joda 和 JDK 互操作性,joda允许与JDk中的java.util.Date 的实例(和 Calendar)进行相互转换。
Calendar calendar = Calendar.getInstance(); DateTime dateTime = new DateTime(2016, 7, 22, 10, 0, 1); System.out.println(dateTime.plusDays(90).plusMonths(1).dayOfWeek().withMaximumValue().toString("yyyyMMddHHmmss")); calendar.setTime(dateTime.toDate())
5下面的代码将计算五年前的第二个月的最后一天:
DateTime now = SystemFactory.getClock().getDateTime(); DateTime then = now.minusYears(5) // five years ago .monthOfYear() // get monthOfYear property .setCopy(2) // set it to February .dayOfMonth() // get dayOfMonth property .withMaximumValue();// the last day of the month
6计算两个日期间隔的天数
LocalDate start=new LocalDate(2015, 11,14); LocalDate end=new LocalDate(2016, 01, 15); int days = Days.daysBetween(start, end).getDays();
7时间解析
DateTimeFormatter format = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"); DateTime dateTime2 = DateTime.parse("2015-10-20 23:20:41", format);
或者
DateTime dt2 = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss").parseDateTime("2016-04-20 01:20:39");
8判断是否闰月
DateTime dt4 = new DateTime(); org.joda.time.DateTime.Property month = dt4.monthOfYear(); System.out.println("是否闰月:" + month.isLeap());
相关推荐
赠送jar包:joda-time-2.8.1.jar 赠送原API文档:joda-time-2.8.1-javadoc.jar 赠送源代码:joda-time-2.8.1-sources.jar 包含翻译后的API文档:joda-time-2.8.1-javadoc-API文档-中文(简体)版.zip 对应Maven信息...
本文将深入探讨Joda-Time 2.5版本的核心特性和使用方法。 一、Joda-Time简介 Joda-Time是一款开源的Java日期和时间处理库,由Stephen Colebourne创建,旨在替换Java SE 1.4及之前的日期时间API。它提供了一个更...
赠送jar包:joda-time-2.10.8.jar; 赠送原API文档:joda-time-2.10.8-javadoc.jar; 赠送源代码:joda-time-2.10.8-sources.jar; 赠送Maven依赖信息文件:joda-time-2.10.8.pom; 包含翻译后的API文档:joda-time-...
joda-time-2.1.jar
赠送jar包:joda-time-2.9.5.jar; 赠送原API文档:joda-time-2.9.5-javadoc.jar; 赠送源代码:joda-time-2.9.5-sources.jar; 赠送Maven依赖信息文件:joda-time-2.9.5.pom; 包含翻译后的API文档:joda-time-...
赠送jar包:joda-time-2.5.jar; 赠送原API文档:joda-time-2.5-javadoc.jar; 赠送源代码:joda-time-2.5-sources.jar; 赠送Maven依赖信息文件:joda-time-2.5.pom; 包含翻译后的API文档:joda-time-2.5-javadoc-...
赠送jar包:joda-time-2.2.jar; 赠送原API文档:joda-time-2.2-javadoc.jar; 赠送源代码:joda-time-2.2-sources.jar; 赠送Maven依赖信息文件:joda-time-2.2.pom; 包含翻译后的API文档:joda-time-2.2-javadoc-...
赠送jar包:joda-time-2.9.9.jar; 赠送原API文档:joda-time-2.9.9-javadoc.jar; 赠送源代码:joda-time-2.9.9-sources.jar; 赠送Maven依赖信息文件:joda-time-2.9.9.pom; 包含翻译后的API文档:joda-time-...
赠送jar包:joda-time-2.10.4.jar; 赠送原API文档:joda-time-2.10.4-javadoc.jar; 赠送源代码:joda-time-2.10.4-sources.jar; 赠送Maven依赖信息文件:joda-time-2.10.4.pom; 包含翻译后的API文档:joda-time-...
在完成上述步骤后,即可在项目中自由地使用`joda-time-android`提供的功能,提升日期时间处理的效率和便利性。 总之,`joda-time-android`是一个专门为Android开发设计的日期时间处理库,它结合了Joda-Time的强大...
1. **格式化与解析**:Joda-Time提供DateTimeFormatter,可以自定义日期时间格式进行解析和格式化,避免了使用SimpleDateFormat带来的线程安全问题。 2. **时间区间操作**:通过Interval类,可以方便地进行时间区间...
1. 易于使用:Calendar让获取"正常的"的日期变得很困难,使它没办法提供简单的方法,而Joda-Time能够 直接进行访问域并且索引值1就是代表January。 2. 易于扩展:JDK支持多日历系统是通过Calendar的子类来实现,这样...
Joda-Time 令时间和日期值变得易于管理、操作和理解。日期和时间是一个非常复杂的领域。Joda-Time中的许多类旨在使域的细微差别得以充分表达。版本2.10.6是当前的最新版本。该版本被认为是稳定的,值得2.x标签使用。
在解压后的文件中,`joda-time-2.9.9.jar`是Joda-Time库的二进制文件,可以直接引入到Java项目中使用。而`使用说明.txt`文件则包含了详细的使用指南和示例,对于初学者来说,是快速掌握Joda-Time API的重要参考资料...
赠送jar包:joda-time-2.10.13.jar; 赠送原API文档:joda-time-2.10.13-javadoc.jar; 赠送源代码:joda-time-2.10.13-sources.jar; 赠送Maven依赖信息文件:joda-time-2.10.13.pom; 包含翻译后的API文档:joda-...
早期的Java标准库中的日期时间API(java.util.Date和Calendar)设计复杂,不易使用,而Joda-Time库的出现正是为了解决这一问题。本文将详细介绍Joda-Time库,以及其在2.9.9版本中的特点和用法。 Joda-Time是Java...
在本文中,我们将深入探讨Joda-Time的核心概念、主要功能以及如何在实际项目中使用它。 1. **核心概念** Joda-Time基于“瞬时值”(Instant)和“时期”(Period)的概念。"瞬时值"表示自纪元以来的毫秒数,而...
本文将详细讨论这个问题以及如何使用"joda-time-1.6.2.jar"来解决它。 首先,我们需要了解为什么Spring MVC在尝试将日期字段转换为`Date`类型时会报错。这主要是因为默认的转换器并不支持用户友好的日期格式,如...
《Joda-Time:Java平台上的高效日期时间处理库》 Joda-Time,作为一个知名的开源库,专注于为Java平台提供高效且易用的时间日期处理功能。版本2.7是该库的一个重要里程碑,它包含了源代码和Java文档,使得开发者...