博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java日期简化工具Joda-Time
阅读量:7015 次
发布时间:2019-06-28

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

  hot3.png

简介

    想必大家在平时的项目开发中经常要处理日期的问题,比如需要处理两个日期间隔的天数,使用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包

joda-time
joda-time
2.9.7

(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:500DateTime 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:18LocalDateTime 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();// 一个月中的最后一天

 

转载于:https://my.oschina.net/feinik/blog/848092

你可能感兴趣的文章
你以为的SPSS只是简单的数据分析软件吗?
查看>>
CSS Grid Simple Example
查看>>
《Windows服务器配置与管理》本地用户、组的管理
查看>>
mysql数据库移植sqlserver数据库
查看>>
使用update-alternatives 命令修改Java版本-自动切换Java版本
查看>>
我的友情链接
查看>>
linux命令学习(68 69)-tree finger
查看>>
写给同事的前端学习路线
查看>>
我的友情链接
查看>>
Global Azure上创建SSTP模式***配置介绍
查看>>
SQL Server 2016 Failover Cluster+ ALwaysOn(二)
查看>>
spring源码--依赖注入
查看>>
rhel7配置多用户tiger vnc server
查看>>
iOS播放系统声音
查看>>
const 命令
查看>>
我的友情链接
查看>>
linux系统root口令丢失
查看>>
菜鸟学Linux 第088篇笔记 配置heartbeat基于crm管理
查看>>
我的友情链接
查看>>
多线程爬虫1
查看>>