在JAVA中,时间处理一直是个问题,虽然java有原生的Date和Calendar,作为日期处理工具,但是不管是代码的美观度还是使用的便捷度都仍不是很方便,今天推荐一款方便的java日期工具:Joda。
如果为maven项目,则需要通过添加maven依赖进行添加。本文推荐的版本为2.9.0。
<dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.9.0</version></dependency>
joda默认的时间处理类为org.joda.time.DateTime,下面的代码将展示该类对应的使用方法:
// 默认当前时间DateTime dateTime1 = new DateTime();// 输出日期字符串,格式为:YYYY-MM-ddSystem.out.println(dateTime1.toString("yyyy-MM-dd"));// 显示结果:2020-06-01
// 如果为YYYY-MM-dd格式字符 即为指定时间DateTime dateTime2 = new DateTime("2020-01-01");// 输出日期字符串,格式为:YYYY-MM-dd HH:mm:ssSystem.out.println(dateTime2.toString("yyyy-MM-dd HH:mm:ss"));// 显示结果:2020-01-01 00:00:00
// 基于java的日期Date对象转换DateTimeDateTime dateTime3 = new DateTime(date);System.out.println(dateTime3.toString("yyyy-MM-dd"));// 将DateTime转换DateDate date2 = dateTime3.toDate();
// 日期格式定义DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");// 根据格式定义DateTimeDateTime dateTime4 = DateTime.parse("2020-06-01 12:00:00", formatter);System.out.println(dateTime4.toString("yyyy-MM-dd HH:mm:ss"));
// 年转换DateTime dateTime1 = new DateTime();// 10年后 那就是加10年所以是plusYears(10)String s1 = dateTime1.plusYears(10).toString("yyyy-MM-dd");System.out.println(s1);//显示结果: 2030-06-01// 5年前 那就是减5年所以是minusYears(5)String s2 = dateTime1.minusYears(5).toString("yyyy-MM-dd");System.out.println(s2);//显示结果:2015-06-01
// 月转换DateTime dateTime1 = new DateTime();// 10个月后 那就是加10个月所以是plusMonths(10)String s1 = dateTime1.plusMonths(10).toString("yyyy-MM-dd");System.out.println(s1);//显示结果:2021-04-01// 5个月前 那就是减5个月所以是minusMonths(5)String s2 = dateTime1.minusMonths(5).toString("yyyy-MM-dd");System.out.println(s2);//显示结果: 2020-01-01
// 周转换DateTime dateTime1 = new DateTime();// 2周后 那就是加2周所以是plusWeeks(2)String s1 = dateTime1.plusWeeks(2).toString("yyyy-MM-dd");System.out.println(s1);// 显示结果: 2020-06-15// 1周前 那就是减1周所以是minusWeeks(1)String s2 = dateTime1.minusWeeks(1).toString("yyyy-MM-dd");System.out.println(s2);// 显示结果: 2020-05-25
// 时转换DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");DateTime dateTime1 = DateTime.parse("2020-06-01 12:00:00", formatter);// 2小时后 那就是加2小时所以是plusHours(2)String s1 = dateTime1.plusHours(2).toString("yyyy-MM-dd HH:mm:ss");System.out.println(s1);// 显示结果: 2020-06-01 14:00:00// 1小时前 那就是减1个小时所以是minusHours(1)String s2 = dateTime1.minusHours(1).toString("yyyy-MM-dd HH:mm:ss");System.out.println(s2);// 显示结果: 2020-06-01 11:00:00
转发+关注 私信我 回复头条666 领取资料