joda dateTime简单用法

我们在编写应用程序都需要处理时间问题。应用程序需要知道当前的时间点和下一个时间点,有时它们还必须计算这两个时间点之间的路径。使用 JDK 完成这项任务将非常痛苦和繁琐。joda-dateTime 可以解决

1、DateTime   

   它以毫秒级的精度封装时间上的某个瞬间时刻。DateTime 始终与 DateTimeZone 相关,如果您不指定它的话,它将被默认设置为运行代码的机器所在的时区。可以使用多种方式构造DateTime对象

[java]  view plain  copy
  1. DateTime dt = new DateTime();  
  2. DateTime dt1 = DateTime.now();  
  3. DateTime dt2 = new DateTime(new Date());  
  4. DateTime dt6 = new DateTime(Calendar.getInstance());  
  5. // 指定年月日点分秒生成(参数依次是:年,月,日,时,分,秒,毫秒)  
  6. DateTime dt3 = new DateTime(2012520131400);  
  7. // 制定ISO8601生成  
  8. DateTime dt4 = new DateTime("2014-08-01T12:32:3");  
  9. DateTime dt5 = new DateTime("2014-08-01");  
2、 LocalDate 该类封装了一个年/月/日的组合。当地理位置(即时区)变得不重要时,使用它存储日期将非常方便

[java]  view plain  copy
  1. LocalDate localDate = new LocalDate();//输出格式 yyyy-MM-dd  
  2. LocalDate localDate2 = new LocalDate(new Date());  
  3. LocalDate localDate3 = new LocalDate(2014,8,1);  
3、 LocalTime 这个类封装一天中的某个时间,当地理位置不重要的情况下,可以使用这个类来只存储一天当中的某个时间

[java]  view plain  copy
  1. LocalTime localTime = new LocalTime();// HH:mm:sss.a  
  2. LocalTime localTime2 = new LocalTime(new Date());  

4、DateTime 日期获取年月日时分

  

[java]  view plain  copy
  1. DateTime dte = DateTime.now();  
  2. int year = dte.getYear(); // 2014  
  3. year = dte.getYearOfCentury(); // 14  
  4. year = dte.getYearOfEra(); // 2014  
  5. int month = dte.getMonthOfYear();  
  6. int day = dte.getDayOfMonth();  
  7. day = dte.getDayOfWeek(); // 星期几  
  8. day = dte.getDayOfYear();// 一年的第多少天  
  9. int hours = dte.getHourOfDay();  
  10. int mills = dte.getMinuteOfHour();  
  11. int second = dte.getSecondOfMinute();  

   5、与jdk转换

[java]  view plain  copy
  1. DateTime dtt = new DateTime();  
  2.    // 转换成java.util.Date对象  
  3.    Date d1 = new Date(dt.getMillis());  
  4.    Date d2 = dt.toDate();  
  5.    // 转换成java.util.Calendar对象  
  6.    Calendar c1 = Calendar.getInstance();  
  7.    c1.setTimeInMillis(dt.getMillis());  
  8.    Calendar c2 = dt.toCalendar(Locale.getDefault());  
6、日期增加减少

 

[java]  view plain  copy
  1. DateTime dtx = DateTime.now();  
  2.      dtx.plusDays(1);  
  3.      dtx.plusMonths(1);  
  4.      dtx.plusYears(1);// 增加1 day,1 months,1 year  
  5.      dtx.minusDays(1);  
  6.      dtx.minusMonths(1);  
  7.      dtx.minusYears(1); // 减少1day,1月,1年  
  8.      DateTime dtxw = dtx.dayOfMonth().withMaximumValue(); // 月末日期  
  9.      DateTime dxys = dtx.plus(58).dayOfWeek().withMinimumValue(); // 增加58后的哪周周一的日期  
  10.      DateTime dateTime = DateTime.now().withHourOfDay(12).withMinuteOfHour(00); // 当天12:00的日期  
7、日期比较

[java]  view plain  copy
  1. DateTime dateTime2 = new DateTime("2014-09-03");  
  2.    DateTime dateTime3 = new DateTime("2014-08-01");  
  3.    dateTime2.isAfter(dateTime3); // 后  
  4.    dateTime2.isBefore(dateTime3); // 前  
  5.    dateTime2.isEqual(dateTime3); // 等  
  6.    System.out.println(dateTime3.isEqual(new DateTime())); // 和系统时间比较 false  
  7.    // 和系统时间比较  
  8.    dateTime3.isAfterNow();  
  9.    dateTime3.isEqualNow();  
  10.    System.out.println(dateTime3.isBeforeNow()); // true  

8、计算区间

  

[java]  view plain  copy
  1. DateTime startDateTime = new DateTime("2014-08-01");  
  2.     DateTime endDateTime = new DateTime("2014-08-23");  
  3.     Duration d = new Duration(startDateTime, endDateTime);  
  4.     long time = d.getMillis(); // 毫秒  
  5.     Period p = new Period(startDateTime, endDateTime, PeriodType.days());  
  6.     int days = p.getDays(); // 天数  
  7.     Days.daysBetween(startDateTime, endDateTime).getDays();// 相差天数  
  8.     Interval i = new Interval(startDateTime, endDateTime);  
  9.     boolean contained = i.contains(new DateTime("2014-08-03"));// 验证某一天是否在该区间内  
9、格式化


[java]  view plain  copy
  1. DateTime dateTimew = new DateTime();  
  2.       // 转成字符串  
  3.       dateTimew.toString("yyyy-MM-dd");  
  4.       dateTimew.toString("yyyy/MM/dd hh:mm:ss.SSSa");  
  5.       dateTimew.toString("yyyy-MM-dd HH:mm:ss");  
  6.       dateTimew.toString("EEEE dd MMMM, yyyy HH:mm:ssa");  
  7.       dateTimew.toString("yyyy/MM/dd HH:mm ZZZZ");  
  8.       dateTimew.toString("yyyy/MM/dd HH:mm Z");  
  9.       DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd");  
  10.       dateTimew.toString(formatter);  
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值