Joda-Time

来源:互联网 发布:淘宝dota2代练 编辑:程序博客网 时间:2024/05/22 13:55
Joda-Time提供了一组Java类包用于处理包括ISO8601标准在内的date和time。可以利用它把JDK Date和Calendar类完全替换掉,而且仍然能够提供很好的集成。

http://joda-time.sourceforge.net/

版本:joda-time-2.1.jar


1、时间类得作成
Java代码  收藏代码
  1. //方法一:取系统点间  
  2. DateTime dt1 = new DateTime();  
  3.   
  4. //方法二:通过java.util.Date对象生成  
  5. DateTime dt2 = new DateTime(new Date());  
  6.   
  7. //方法三:指定年月日点分秒生成(参数依次是:年,月,日,时,分,秒,毫秒)  
  8. DateTime dt3 = new DateTime(2012520131400);  
  9.   
  10. //方法四:ISO8601形式生成  
  11. DateTime dt4 = new DateTime("2012-05-20");  
  12. DateTime dt5 = new DateTime("2012-05-20T13:14:00");  
  13.   
  14. //只需要年月日的时候  
  15. LocalDate localDate = new LocalDate(200996);// September 6, 2009  
  16.   
  17. //只需要时分秒毫秒的时候  
  18. LocalTime localTime = new LocalTime(1330260);// 1:30:26PM  


2、获取年月日点分秒
Java代码  收藏代码
  1. DateTime dt = new DateTime();  
  2. //年  
  3. int year = dt.getYear();  
  4. //月  
  5. int month = dt.getMonthOfYear();  
  6. //日  
  7. int day = dt.getDayOfMonth();  
  8. //星期  
  9. int week = dt.getDayOfWeek();  
  10. //点  
  11. int hour = dt.getHourOfDay();  
  12. //分  
  13. int min = dt.getMinuteOfHour();  
  14. //秒  
  15. int sec = dt.getSecondOfMinute();  
  16. //毫秒  
  17. int msec = dt.getMillisOfSecond();  


3、星期的特殊处理
Java代码  收藏代码
  1. DateTime dt = new DateTime();  
  2.   
  3. //星期  
  4. switch(dt.getDayOfWeek()) {  
  5. case DateTimeConstants.SUNDAY:  
  6.     System.out.println("星期日");  
  7.     break;  
  8. case DateTimeConstants.MONDAY:  
  9.     System.out.println("星期一");  
  10.     break;  
  11. case DateTimeConstants.TUESDAY:  
  12.     System.out.println("星期二");  
  13.     break;  
  14. case DateTimeConstants.WEDNESDAY:  
  15.     System.out.println("星期三");  
  16.     break;  
  17. case DateTimeConstants.THURSDAY:  
  18.     System.out.println("星期四");  
  19.     break;  
  20. case DateTimeConstants.FRIDAY:  
  21.     System.out.println("星期五");  
  22.     break;  
  23. case DateTimeConstants.SATURDAY:  
  24.     System.out.println("星期六");  
  25.     break;  
  26. }  


4、与JDK日期对象的转换
Java代码  收藏代码
  1. DateTime dt = new DateTime();  
  2.   
  3. //转换成java.util.Date对象  
  4. Date d1 = new Date(dt.getMillis());  
  5. Date d2 = dt.toDate();  
  6.   
  7. //转换成java.util.Calendar对象  
  8. Calendar c1 = Calendar.getInstance();  
  9. c1.setTimeInMillis(dt.getMillis());  
  10. Calendar c2 = dt.toCalendar(Locale.getDefault());  


5、日期前后推算
Java代码  收藏代码
  1. DateTime dt = new DateTime();  
  2.   
  3. //昨天  
  4. DateTime yesterday = dt.minusDays(1);         
  5. //明天  
  6. DateTime tomorrow = dt.plusDays(1);       
  7. //1个月前  
  8. DateTime before1month = dt.minusMonths(1);        
  9. //3个月后  
  10. DateTime after3month = dt.plusMonths(3);          
  11. //2年前  
  12. DateTime before2year = dt.minusYears(2);          
  13. //5年后  
  14. DateTime after5year = dt.plusYears(5);  


6、取特殊日期
Java代码  收藏代码
  1. DateTime dt = new DateTime();     
  2.   
  3. //月末日期    
  4. DateTime lastday = dt.dayOfMonth().withMaximumValue();  
  5.   
  6. //90天后那周的周一  
  7. DateTime firstday = dt.plusDays(90).dayOfWeek().withMinimumValue();  


7、时区
Java代码  收藏代码
  1. //默认设置为日本时间  
  2. DateTimeZone.setDefault(DateTimeZone.forID("Asia/Tokyo"));  
  3. DateTime dt1 = new DateTime();  
  4.   
  5. //伦敦时间  
  6. DateTime dt2 = new DateTime(DateTimeZone.forID("Europe/London"));  


8、计算区间
Java代码  收藏代码
  1. DateTime begin = new DateTime("2012-02-01");  
  2. DateTime end = new DateTime("2012-05-01");  
  3.   
  4. //计算区间毫秒数  
  5. Duration d = new Duration(begin, end);  
  6. long time = d.getMillis();  
  7.   
  8. //计算区间天数  
  9. Period p = new Period(begin, end, PeriodType.days());  
  10. int days = p.getDays();  
  11.   
  12. //计算特定日期是否在该区间内  
  13. Interval i = new Interval(begin, end);  
  14. boolean contained = i.contains(new DateTime("2012-03-01"));  


9、日期比较
Java代码  收藏代码
  1. DateTime d1 = new DateTime("2012-02-01");  
  2. DateTime d2 = new DateTime("2012-05-01");  
  3.   
  4. //和系统时间比  
  5. boolean b1 = d1.isAfterNow();  
  6. boolean b2 = d1.isBeforeNow();  
  7. boolean b3 = d1.isEqualNow();  
  8.   
  9. //和其他日期比  
  10. boolean f1 = d1.isAfter(d2);  
  11. boolean f2 = d1.isBefore(d2);  
  12. boolean f3 = d1.isEqual(d2);  


10、格式化输出
Java代码  收藏代码
  1. DateTime dateTime = new DateTime();  
  2.   
  3. String s1 = dateTime.toString("yyyy/MM/dd hh:mm:ss.SSSa");  
  4. String s2 = dateTime.toString("yyyy-MM-dd HH:mm:ss");  
  5. String s3 = dateTime.toString("EEEE dd MMMM, yyyy HH:mm:ssa");  
  6. String s4 = dateTime.toString("yyyy/MM/dd HH:mm ZZZZ");  
  7. String s5 = dateTime.toString("yyyy/MM/dd HH:mm Z");  


Jodd的JDateTime也提供了很不错的时间API。

参考资料:http://www.ibm.com/developerworks/cn/java/j-jodatime.html

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 阳煤职工吧 阳煤职工 煤老板 煤矽肺病 蜂窝煤 阳煤集团 煤矸石 嫁给煤老板 山西焦煤 动力煤期货 601717郑煤机股吧 动力煤 山西焦煤住房公积金 郑煤集团 郑煤机股票 煤精石 山西焦煤集团 煤改气 河北煤改气叫停 601717郑煤机 西煤交易 秸秆煤 宁煤集团 煤安标志 梦见煤 川煤集团 云煤能源 煤矸石的用途 煤组词语 煤制油 一吨煤多少钱 煤安标志查询 陕煤集团招聘 龙煤集团 煤价格 内蒙古钛西煤集团陶强 京煤集团总医院 煤炭价格 动力煤价格 动力煤现货价格 煤一吨多少钱