Java日期简化工具Joda-Time
2017-05-30 18:00
441 查看
简介
想必大家在平时的项目开发中经常要处理日期的问题,比如需要处理两个日期间隔的天数,使用JDK1.8以前自带的日期API处理相当的繁琐(JDK1.8的API已经重写了日期库,其实也是借鉴了Joda-Time),那么接下来介绍的这款日期库工具(Joda-Time)就非常强大了,使用Joda-Time可以轻松的处理各种复杂的时间相关问题。特点
易于使用:使用Joda-Time可以非常容易的处理一些复杂的日期问题易于扩展:Joda-Time支持多达8种日历系统
线程安全:Joda类具有不可变性,因此它们的实例无法被修改
提供最新的时区计算
互操作性:与JDK可互操作
类说明
Instant:不可变类,代表时间线上的一个唯一的时间点DateTime:不可变类,它以毫秒级的精度封装时间上的某个瞬间时刻
LocalDate:不可变类,该类封装了一个年/月/日的组合。当地理位置(即时区)变得不重要时,使用它存储日期将非常方便
LocalTime:不可变类,这个类封装一天中的某个时间,当地理位置不重要的情况下,可以使用这个类来只存储一天当中的某个时间
LocalDateTime:不可变类,该类封装了一个年/月/日 时:分:秒的组合。当地理位置(即时区)变得不重要时,使用它存储日期和时间非常方便
使用示例
(1)使用maven导入Joda-Time包<dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.9.7</version> </dependency>
(2)DateTime使用
如需输出当前日期和时间
DateTime dateTime = new DateTime(); System.out.println(dateTime.toString("yyyy-MM-dd HH:mm:ss")); //本月多少号 int dayOfMonth = dateTime.getDayOfMonth(); //本年的第几月 int monthOfYear = dateTime.getMonthOfYear(); //获取年份 int year = dateTime.getYear(); //当前日期+1天后的时间 dateTime = dateTime.plusDays(1); //当前日期+1小时的时间 dateTime = dateTime.plusHours(1); //当前日期-1年前的时间 dateTime = dateTime.plusYears(-1); //创建指定日期时间如:2017-2-28 10:40:50:500 DateTime dateTime = new DateTime(2017,2,28,10,40,50,500);
(3)LocalDate使用
该类代表没有时区的日期,适用与对时区不关心的日期场景
LocalDate localDate = new LocalDate(); LocalDate lDate = new LocalDate(2017,12,12);
(4)LocalTime使用
该类代表没有时区的时间,适用与对时区不关心的时间场景
LocalTime localTime = new LocalTime(); LocalTime lTime = new LocalTime(12,20,10);
(5)LocalDateTime使用
该类代表没有时区的日期时间,适用与对时区不关心的日期时间场景
LocalDateTime localDateTime = new LocalDateTime(); //2017-12-12 13:10:18 LocalDateTime localDateTime2 = new LocalDateTime(2017,12,12,13,10,18);
(6)与JDK互操作
Date date = dateTime.toDate(); Calendar calendar = dateTime.toCalendar(Locale.CHINESE);
(7)综合使用
LocalDate localDate = new LocalDate(); //计算下一个月的第一天的日期 localDate = localDate.plusMonths(1).dayOfMonth().withMinimumValue(); DateTime dateTime = new DateTime(); //计算一年前的第二个月的最后一天的日期 DateTime dateTime = dateTime.minusYears(1) // 一年前 .monthOfYear() // 获得 monthOfYear 属性 .setCopy(2) // 设置为2月 .dayOfMonth() // 获得 dayOfMonth 属性 .withMaximumValue();// 一个月中的最后一天
相关文章推荐
- Java日期简化工具Joda-Time
- Java日期转换使用Joda-Time工具
- Java处理日期Joda-Time
- [Java]Java日期及时间库插件 -- Joda Time.
- Java日期计算之Joda-Time
- 【JAVA秒会技术之Joda-Time】满足你所有关于日期的处理
- 【转】Java日期计算之Joda-Time
- Java时间计算工具joda-time
- Android 系列 2.11使用Java 8 java.time API简化日期/时间计算
- Java日期计算之Joda-Time
- Java日期计算之Joda-Time
- java日期 - Joda-Time
- java日期计算之joda-time
- [Java]Java日期及时间库插件 -- Joda Time.
- Java|Joda-Time简化时间处理利器
- Java日期计算之Joda-Time
- Java日期计算之Joda-Time
- Java8的日期API——joda time
- Java 日期处理类库Joda-Time简介
- Java日期计算之Joda-Time