- 浏览: 1281076 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (169)
- linux (22)
- java (11)
- javascript (7)
- ofbiz (3)
- json (1)
- mysql (4)
- mail (1)
- svn (3)
- tools (5)
- ruby on rails (5)
- jquery (2)
- html (1)
- jpa (1)
- linux ubuntu (3)
- ubuntu12.04 (1)
- git (1)
- photoshop (1)
- linux和windows糸统维护 (1)
- svn merge (1)
- eclipse svn (1)
- joda-time (1)
- ipad2 (1)
- ant (1)
- flash cookie例子,flash cookie (1)
- flash cookie例子,flash cookie使用actionscript3类 (1)
- flash cookie例子,flash操作cookie (1)
- swf文件的反编译,flash文件的反编译 (1)
- mac (1)
- datepicker (1)
- java,统计汉字数 (1)
- idea (1)
- idea svn (1)
- idea java jar (1)
- mac idea 快捷键 (1)
- mac idea 常用配置 (1)
- intellij idea junit (1)
最新评论
-
qiuqinjun:
有没有测试代码呢
Java 多叉树的实现,完成树的初始化和遍历 -
yuanliangding:
没加 -b,是随机出多少个密码偿试。?
linux下zip文件密码破解Fcrackzip -
zenmshuo:
还有C1Calendar,也推荐试试
日历控件datepicker的使用 -
sucheng2016:
如何计算当天最大时间 有什么方法
joda-time的使用 -
sucheng2016:
很好很强打
joda-time的使用
Joda-Time
Home:http://joda-time.sourceforge.net/
JavaDoc:http://joda-time.sourceforge.net/apidocs/index.html
直接看代码,这是在网上和根据API整理的一些例子,使用时看例子就可以了
下面是一个小例子用来计算小宝宝从出生到现在总共的天数小时数等,首先用jdk的类去做,不用joda,然后再用joda去做,以做比较
用jdk做的例子,这里算的从出生到现在的时间间隔是准确的,如果是输入的某天来算的话就不是很准确,多一秒就算一天。可以看到用jdk去做的话,要写的代码还是挺繁琐的。
下面是用joda来做,用这个来做就简单的多了,而且也很准确。
附件是用到的joda的包
Home:http://joda-time.sourceforge.net/
JavaDoc:http://joda-time.sourceforge.net/apidocs/index.html
直接看代码,这是在网上和根据API整理的一些例子,使用时看例子就可以了
package com.yan.joda; import java.util.Calendar; import java.util.Date; import java.util.Locale; import org.joda.time.DateTime; import org.joda.time.Days; import org.joda.time.LocalDate; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; public class JodaTest { public static void main(String[] args) { //初始化时间 DateTime dateTime=new DateTime(2012, 12, 13, 18, 23,55); // 年,月,日,时,分,秒,毫秒 DateTime dt3 = new DateTime(2011, 2, 13, 10, 30, 50, 333);// 2010年2月13日10点30分50秒333毫秒 //下面就是按照一点的格式输出时间 String str2 = dateTime.toString("MM/dd/yyyy hh:mm:ss.SSSa"); String str3 = dateTime.toString("dd-MM-yyyy HH:mm:ss"); String str4 = dateTime.toString("EEEE dd MMMM, yyyy HH:mm:ssa"); String str5 = dateTime.toString("MM/dd/yyyy HH:mm ZZZZ"); String str6 = dateTime.toString("MM/dd/yyyy HH:mm Z"); DateTimeFormatter format = DateTimeFormat .forPattern("yyyy-MM-dd HH:mm:ss"); //时间解析 DateTime dateTime2 = DateTime.parse("2012-12-21 23:22:45", format); //时间格式化,输出==> 2012/12/21 23:22:45 Fri String string_u = dateTime2.toString("yyyy/MM/dd HH:mm:ss EE"); System.out.println(string_u); //格式化带Locale,输出==> 2012年12月21日 23:22:45 星期五 String string_c = dateTime2.toString("yyyy年MM月dd日 HH:mm:ss EE",Locale.CHINESE); System.out.println(string_c); DateTime dt1 = new DateTime();// 取得当前时间 // 根据指定格式,将时间字符串转换成DateTime对象,这里的格式和上面的输出格式是一样的 DateTime dt2 = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss").parseDateTime("2012-12-26 03:27:39"); //计算两个日期间隔的天数 LocalDate start=new LocalDate(2012, 12,14); LocalDate end=new LocalDate(2013, 01, 15); int days = Days.daysBetween(start, end).getDays(); //计算两个日期间隔的小时数,分钟数,秒数 //增加日期 DateTime dateTime1 = DateTime.parse("2012-12-03"); dateTime1 = dateTime1.plusDays(30); dateTime1 = dateTime1.plusHours(3); dateTime1 = dateTime1.plusMinutes(3); dateTime1 = dateTime1.plusMonths(2); dateTime1 = dateTime1.plusSeconds(4); dateTime1 = dateTime1.plusWeeks(5); dateTime1 = dateTime1.plusYears(3); // Joda-time 各种操作..... dateTime = dateTime.plusDays(1) // 增加天 .plusYears(1)// 增加年 .plusMonths(1)// 增加月 .plusWeeks(1)// 增加星期 .minusMillis(1)// 减分钟 .minusHours(1)// 减小时 .minusSeconds(1);// 减秒数 //判断是否闰月 DateTime dt4 = new DateTime(); org.joda.time.DateTime.Property month = dt4.monthOfYear(); System.out.println("是否闰月:" + month.isLeap()); //取得 3秒前的时间 DateTime dt5 = dateTime1.secondOfMinute().addToCopy(-3); dateTime1.getSecondOfMinute();// 得到整分钟后,过的秒钟数 dateTime1.getSecondOfDay();// 得到整天后,过的秒钟数 dateTime1.secondOfMinute();// 得到分钟对象,例如做闰年判断等使用 // DateTime与java.util.Date对象,当前系统TimeMillis转换 DateTime dt6 = new DateTime(new Date()); Date date = dateTime1.toDate(); DateTime dt7 = new DateTime(System.currentTimeMillis()); dateTime1.getMillis(); Calendar calendar = Calendar.getInstance(); dateTime = new DateTime(calendar); } }
下面是一个小例子用来计算小宝宝从出生到现在总共的天数小时数等,首先用jdk的类去做,不用joda,然后再用joda去做,以做比较
用jdk做的例子,这里算的从出生到现在的时间间隔是准确的,如果是输入的某天来算的话就不是很准确,多一秒就算一天。可以看到用jdk去做的话,要写的代码还是挺繁琐的。
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner; public class CalBaby { private final static String birthday = "2012-3-10 08:20:55"; /** * @param args */ public static void main(String[] args) { while(true){ String format1 = "yyyy-MM-dd"; String format2 = "yyyy-MM-dd HH:mm:ss"; Scanner s = new Scanner(System.in); System.out.println("########################################"); cutTwoDateToDay(convertToDate1(birthday,format2),new Date(),false); System.out.println("请选择操作"); System.out.println("请输入日期(格式例如:2012-11-08)"); System.out.println("########################################"); String endDateStr = s.nextLine(); Date endDate = convertToDate1(endDateStr,format1); if(endDate == null){ System.out.println("输入格式错误!请重新输入."); continue; } boolean inputFlag = true; cutTwoDateToDay(convertToDate1(birthday,format2),endDate,inputFlag); } } /** * 计算两个日期之间的差距天数 * * @param a * @param b * @return */ public static void cutTwoDateToDay(Date beginDate, Date endDate,boolean inputFlag) { Calendar calendar = Calendar.getInstance(); long intervalDays = 0; calendar.setTime(beginDate); long begin = calendar.getTimeInMillis(); calendar.setTime(endDate); long end = calendar.getTimeInMillis(); long totalM = end - begin; System.out.println((end -begin)); System.out.println(24*60*60*1000); intervalDays = totalM /(24*60*60*1000); long intervalHours = (totalM - (intervalDays*24*60*60*1000))/(60*60*1000); long intervalMin = (totalM - intervalDays * (24*60*60*1000) - intervalHours*60*60*1000)/(60*1000); if(inputFlag){ if(totalM > 0L && totalM %(24*60*60*1000) > 0L){ intervalDays = intervalDays + 1; } System.out.println("宝宝从出生到"+formatDate(endDate,"yyyy-MM-dd")+"已经"+intervalDays+"天了"); }else{ System.out.println("宝宝来到这个世界已经"+intervalDays+"天"+intervalHours+"小时"+intervalMin+"分钟了"); } } /** * 将字符串日期转换为Date yyyy-MM-dd HH:mm:ss yyyy-MM-dd * * @param s * @return */ public static Date convertToDate1(String s,String format) { if (s == null) { return null; } try { SimpleDateFormat df = new SimpleDateFormat(format); return df.parse(s); } catch (Exception e) { return null; } } public static String formatDate(Date date, String strType) { if (date == null) { return null; } SimpleDateFormat sdf = new SimpleDateFormat(strType); try { return sdf.format(date); } catch (Exception e) { return null; } } }
下面是用joda来做,用这个来做就简单的多了,而且也很准确。
import java.util.Scanner; import org.joda.time.DateTime; import org.joda.time.Days; import org.joda.time.LocalDate; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; public class CalBabyJoda { private final static String birthday = "2012-3-10 08:20:55"; public static void main(String[] args) { while(true){ Scanner s = new Scanner(System.in); System.out.println("########################################"); DateTimeFormatter format1 = DateTimeFormat .forPattern("yyyy-MM-dd HH:mm:ss"); DateTimeFormatter format2 = DateTimeFormat .forPattern("yyyy-MM-dd"); DateTime startDateTime = DateTime.parse(birthday, format1); System.out.println("宝宝来到这个世界已经"); calDateToDay(startDateTime,new DateTime()); System.out.println("如选择其它日期请输入(格式例如:2012-11-08 14:24:54或着2012-11-08)"); System.out.println("########################################"); String endDate = s.nextLine(); DateTime endDateTime = null; try{ endDateTime = DateTime.parse(endDate,format1); }catch(Exception e){ try{ endDateTime = DateTime.parse(endDate,format2); }catch(Exception e1){ System.out.println("输入格式错误!请重新输入."); continue; } } System.out.println("宝宝从出生到" + endDateTime.toString("yyyy-MM-dd HH:mm:ss") + "已经"); calDateToDay(startDateTime,endDateTime); } } public static void calDateToDay(DateTime startDateTime,DateTime endDateTime){ LocalDate start=new LocalDate(startDateTime); LocalDate end=new LocalDate(endDateTime); Days days = Days.daysBetween(start, end); int intervalDays = days.getDays(); int intervalHours = endDateTime.getHourOfDay() - startDateTime.getHourOfDay(); int intervalMinutes = endDateTime.getMinuteOfHour() - startDateTime.getMinuteOfHour(); int intervalSeconds = endDateTime.getSecondOfMinute() - startDateTime.getSecondOfMinute(); if(intervalSeconds < 0){ intervalMinutes = intervalMinutes -1; intervalSeconds = 60 + intervalSeconds; } if(intervalMinutes < 0){ intervalHours = intervalHours -1; intervalMinutes = 60 + intervalMinutes; } if(intervalHours < 0){ intervalDays = intervalDays -1; intervalHours = 24 + intervalHours; } System.out.println(intervalDays + "天" + intervalHours + "小时" + intervalMinutes + "分钟" + intervalSeconds + "秒"); System.out.println("############################"); } }
附件是用到的joda的包
- joda-time-2.1.jar (557.1 KB)
- 下载次数: 586
评论
3 楼
sucheng2016
2016-08-23
如何计算当天最大时间 有什么方法
2 楼
sucheng2016
2016-08-23
很好很强打
1 楼
shiylqq
2015-09-02
.minusMillis(1)// 减分钟
楼主这个应该是毫秒,minusMinutes这个才是减去分钟数
楼主这个应该是毫秒,minusMinutes这个才是减去分钟数
发表评论
-
手动编译打包执行java类(javac,java,jar使用)
2013-08-06 09:59 26123做一个手动编译打包执行java类例子 首先进入zipCo ... -
找出一些数,这些数不管几个相加得到的值或着单个的数都不会重复
2013-03-20 18:00 1659根据linux的权限4(read),2(write),1(x) ... -
jpa的学习---jpa demo工程
2012-08-28 09:25 3526这几天糸统的学习了一下jpa,并且跟着网上的视频做了不少练习, ... -
spring整合junit使用记录
2012-08-24 17:31 3198参考地址: [url] http://www.cnblogs. ... -
scheduleAtFixedRate的使用
2012-07-03 09:13 1314schedule和scheduleAtFixedRate的区别 ... -
list转成json对象
2012-06-13 15:41 101331需要的包: 1.commons-lang.jar 2.com ... -
Integer对象比较详记
2012-06-07 15:09 819java Integer类不是java的基本类型所以比较应该这 ... -
java的double类型format
2012-06-07 11:38 1211java的double类型format: ... -
用shell和java对svn代码打增量包
2011-11-02 15:57 5465每次从svn上打增包都很麻烦,好像也没有找到什么工具,就想用s ... -
java生成二维码的三个工具
2011-08-29 16:47 388281: 使用SwetakeQRCode在Java项目中生成二维码 ...
相关推荐
赠送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文档,使得开发者...