博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
总结JODA TIME使用
阅读量:6232 次
发布时间:2019-06-21

本文共 3255 字,大约阅读时间需要 10 分钟。

hot3.png

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

推荐以下博客:

// 对象中时间转字符串new DateTime(javaBean.getDate()).toString("yyyy/MM/dd HH:mm:ss");// 当前时间转字符串DateTime.now().toString("yyyy-MM-dd");// 当前时间的后一天字符串new DateTime().plusDays(1).toString("yyyy-MM-dd HH:mm:ss"));// 当前时间的前一个月字符串new DateTime().plusMonths(-1).toString("yyyy-MM-dd HH:mm:ss"));

附上几个例子:

1、创建任意时间对象

Java代码 

//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、计算两日期相差的天数

Java代码 

//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天之后的某天在下个月的当前周的第一天日期

 

Java代码 

    //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、时间格式化

Java代码 

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互操作

Java代码 

             //通过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);  

 

/**     * 判断时间戳是否在当月     *      * @return     */    private boolean isInThisNaturalMonth(long time) {        long mStart = new DateTime(DateTime.now().getYear(), DateTime.now().getMonthOfYear(), 1, 0, 0, 0, 000).getMillis();        long mEnd = new DateTime(DateTime.now().getYear(), DateTime.now().getMonthOfYear() + 1, 1, 0, 0, 0, 000).getMillis();        return time >= mStart && time < mEnd;    }

 

转载于:https://my.oschina.net/u/3418748/blog/1610068

你可能感兴趣的文章
git 出现错误 Could not resolve host: github.com 或者 gitlab.com 或者gerrit相关( 自有服务 )...
查看>>
eclipse中启动项目报内存溢出问题通过修改配置解决
查看>>
垃圾桶丁
查看>>
Windows环境下python2.7安装mysql-python
查看>>
InnoDB的三个关键特性
查看>>
请教一个问题:关于 webrtc 通信的问题
查看>>
SDE里修改要素的已有字段的长度
查看>>
openStack高可用性和灾备方案
查看>>
svn完整搭建
查看>>
programData
查看>>
python正则表达式二[转]
查看>>
Easyui datagrid
查看>>
win11.2.0.4lsnrctl status hang
查看>>
黑盒测试实践作业进度报告(周四)
查看>>
json和jsonp
查看>>
js form表单 鼠标移入弹出提示功能
查看>>
机器学习(一)
查看>>
.NET Framework 简介
查看>>
VMWare 虚拟机
查看>>
DHCP 协议 1
查看>>