`

强大易用的日期和时间库 Joda Time

    博客分类:
  • java
阅读更多

    Joda-Time提供了一组Java类包用于处理包括ISO8601标准在内的date和time。可以利用它把JDK Date和Calendar类完全替换掉,而且仍然能够提供很好的集成。

 

Joda-Time主要的特点包括:

 

1. 易于使用:Calendar让获取"正常的"的日期变得很困难,使它没办法提供简单的方法,而Joda-Time能够 直接进行访问域并且索引值1就是代表January。

 

2. 易于扩展:JDK支持多日历系统是通过Calendar的子类来实现,这样就显示的非常笨重而且事实 上要实现其它日历系统是很困难的。Joda-Time支持多日历系统是通过基于Chronology类的插件体系来实现。


3. 提供一组完整的功能:它打算提供 所有关系到date-time计算的功能.Joda-Time当前支持8种日历系统,而且在将来还会继续添加,有着比JDK Calendar更好的整体性能等等。

 

附上几个例子:

 

1、创建任意时间对象

//jdk
Calendar calendar=Calendar.getInstance();
calendar.set(2012, Calendar.NOVEMBER, 15, 18, 23,55);

//Joda-time
DateTime dateTime=new DateTime(2012, 12, 15, 18, 23,55);
 

2、计算两日期相差的天数

 

	//jdk
	Calendar start = Calendar.getInstance(); 
	start.set(2012, Calendar.NOVEMBER, 14);

	Calendar end = Calendar.getInstance();
	end.set(2012, Calendar.NOVEMBER, 15);

	long startTim = start.getTimeInMillis();
	long endTim = end.getTimeInMillis();
	long diff = endTim-startTim;
	int days=(int) (diff/1000 / 3600 / 24);


	//joda-time
	LocalDate start=new LocalDate(2012, 12,14);
	LocalDate end=new LocalDate(2012, 12, 15);
	int days = Days.daysBetween(start, end).getDays();
 

 

 

3、获取18天之后的某天在下个月的当前周的第一天日期

 

      //jdk
		Calendar current = Calendar.getInstance();
		current.add(Calendar.DAY_OF_MONTH, 18);
		current.add(Calendar.MONTH, 1);
			 ......
		DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date = current.getTime();
		String dateStr = dateFormat.format(date);
		System.out.println(dateStr);

		//joda-time
		String dateStr = new DateTime().plusDays(18).plusMonths(1)
			.dayOfWeek().withMinimumValue().toString("yyyy-MM-dd HH:mm:ss");
		System.out.println(dateStr);
 

 

4、时间格式化


DateTimeFormatter format = DateTimeFormat .forPattern("yyyy-MM-dd HH:mm:ss");

		//时间解析
		DateTime dateTime = DateTime.parse("2012-12-21 23:22:45", format);
		
		//时间格式化,输出==> 2012/12/21 23:22:45 Fri
		String string_u = dateTime.toString("yyyy/MM/dd HH:mm:ss EE");
		System.out.println(string_u);
		
		//格式化带Locale,输出==> 2012年12月21日 23:22:45 星期五
		String string_c = dateTime.toString("yyyy年MM月dd日 HH:mm:ss EE",Locale.CHINESE);
		System.out.println(string_c);
 

 

5、与JDK互操作

               //通过jdk时间对象构造
		Date date = new Date();
		DateTime dateTime = new DateTime(date);

		Calendar calendar = Calendar.getInstance();
		dateTime = new DateTime(calendar);

		// Joda-time 各种操作.....
		dateTime = dateTime.plusDays(1) // 增加天
							.plusYears(1)// 增加年
							.plusMonths(1)// 增加月
							.plusWeeks(1)// 增加星期
							.minusMillis(1)// 减分钟
							.minusHours(1)// 减小时
							.minusSeconds(1);// 减秒数
							
		// 计算完转换成jdk 对象
		Date date2 = dateTime.toDate();
		Calendar calendar2 = dateTime.toCalendar(Locale.CHINA);
 

 




 

分享到:
评论
2 楼 huaios 2017-05-12  
[img]
引用
1 楼 sucheng2016 2016-08-23  

相关推荐

    joda-time-example

    强大易用的日期和时间库 Joda Time

    joda time jar包及详细笔记

    Joda-Time是一个强大、易用、高效的日期和时间库,可以利用它把JDK Date和Calendar类完全替换掉无论是计算日期,打印日期、或者解析日期,都非常使用,便捷.附件中有最新的jar包,然后有对JodaTime详细的解释,以及...

    joda-time2.10.1

    于是就诞生了Joda-Time这个专门处理日期时间的库。(JDK1.8的API已经重写了日期库,引入的java.time包,其实也是借鉴了Joda-Time) --------------------- 作者:--nodeps 来源:CSDN 原文:...

    时间日期处理框架Joda-time

    scala上最常用的时间日期处理框架. Joda-time是一个强大、易用、高效的时间日期处理框架,可以使时间和日期更容易操作和理解,可以完全替代JDK的相关API。

    Joda-Time标准Java日期和时间类的一个高质量替代品

    Joda-Time是Java SE8之前的Java日期和时间类广泛使用的替代品。

    clj-time, 用于Clojure的日期和时间库,包装Joda时间库.zip

    clj-time, 用于Clojure的日期和时间库,包装Joda时间库 clj-time 面向Clojure的日期和时间库,包装的Joda库。 时间网站: 在 Java SE 8开始,用户被要求迁移到 java.time ( jsr-310 ),这是JDK的核心部分,它取代了...

    joda-time-2.9.9

    joda-time-2.9.9时间日期转换工具类,简单易用,功能强大!

    joda time 工具

    Joda-Time提供了一组Java类包用于处理包括ISO8601标准在内的date和time。可以利用它把JDK Date和Calendar类完全替换掉,而且仍然能够提供很好的集成。 Joda-Time主要的特点包括: 1. 易于使用:Calendar让获取"正常...

    soda-time, JodaTime/Scala js端口到 Scala/scala js.zip

    soda-time, JodaTime/Scala js端口到 Scala/scala js SodaTime,Scala/scala 。js的JodaTime端口 SodaTime是 JodaTime的端口,可以使用编译。...高质量的日期/时间库,可以跨所有的jvm 。jvm和 Scala.js 应用程

    joda-time-android,具有android专门化的joda时间库.zip

    这个库是joda time的一个版本,它是在考虑android的情况下构建的。

    joda-time-2.10.8-API文档-中文版.zip

    赠送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.8.1-API文档-中文版.zip

    赠送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.8.1-API文档-中英对照版.zip

    赠送jar包:joda-time-2.8.1.jar; 赠送原API文档:joda-time-2.8.1-javadoc.jar; 赠送源代码:joda-time-2.8.1-sources.jar; 赠送Maven依赖信息文件:joda-time-2.8.1.pom; 包含翻译后的API文档:joda-time-...

    joda-time-2.1.jar

    joda-time-2.1.jar

    JodaTime-ohos鸿蒙日期和时间处理库

    鸿蒙日期和时间处理库。

    joda-time-2.9.5-API文档-中文版.zip

    赠送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-...

    joda-time-2.3

    Joda-Time提供了一组Java类包用于处理包括ISO8601标准在内的date和time。可以利用它把JDK Date和Calendar类完全替换掉,而且仍然能够提供很好的集成。 Joda-Time主要的特点包括: 1. 易于使用:Calendar让获取...

    joda-time-2.10.4-API文档-中文版.zip

    赠送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-2.2-API文档-中英对照版.zip

    赠送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-...

Global site tag (gtag.js) - Google Analytics