简介

在Java中处理日期和时间是很常见的需求,基础的工具类就是我们熟悉的Date和Calendar,然而这些工具类的api使用并不是很方便和强大,于是就诞生了Joda-Time这个专门处理日期时间的库。在这里记录下使用方法,方便日后参考。

api 官网 http://www.joda.org/joda-time/apidocs/index.html?overview-summary.html

引入Maven依赖

1

2 joda-time

3 joda-time

4 2.9.9

5

核心类

使用最多的五个日期时间类:

- Instant - 不可变的类,用来表示时间轴上一个瞬时的点(时间戳)

- DateTime - 不可变的类,用来替换JDK的Calendar类

- LocalDate - 不可变的类,表示一个本地的日期,而不包含时间部分(没有时区信息)

- LocalTime - 不可变的类,表示一个本地的时间,而不包含日期部分(没有时区信息)

- LocalDateTime - 不可变的类,表示一个本地的日期-时间(没有时区信息)

DateTime的使用

DateTime 是JodaTime的核心类,代表时间日期值,其构造方法多样,即可以使用各种对象构造,亦可以使用基本类型构造,核心在于能够确定在时间轴上的位置。。默认构造器如下所示

1 DateTime dt = new DateTime();

其他构造函数,可使用不同的构造函数快速获取DateTime对象

1 DateTime(int year, int monthOfYear, int dayOfMonth, int hourOfDay, intminuteOfHour)2 DateTime(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, intsecondOfMinute)3 DateTime(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute, intmillisOfSecond)4 DateTime(longinstant)5 DateTime(Object instant)

还有一种方法就是使用静态方法来获取DateTime对象

1 //获取当前的DateTime

2 DateTime now =DateTime.now();3

4 //获取指定String值的DateTime

5 DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");6 DateTime d3 = DateTime.parse("2019-03-09 11:12:55", formatter);

DateTime中的常用属性值获取方法

1 getCenturyOfEra() 返回世纪单位(int)2 getYearOfCentury() 返回世纪年份(int)3 getYear() 返回年(int)4 getWeekyear() 返回对应年中周数(int)5 getMonthOfYear() 返回对应年的月数(int)6 getDayOfYear() 返回对应年中天数(int)7 getDayOfMonth() 返回对应月份中天数(int)8 getDayOfWeek() 返回对应星期中天数(int)9 getHourOfDay() 返回对应天中的小时(int)10 getMinuteOfDay() 返回对应天中的分钟数(int)11 getMinuteOfHour() 返回对应小时中的分钟数(int)12 getSecondOfDay() 返回对应天中的秒数(int)13 getSecondOfMinute() 返回对应分钟中的秒数(int)14 getMillis() 返回毫秒数(int)15 getMillisOfDay() 返回对应天中的毫秒(int)16 getMillisOfSecond() 返回对应秒中的毫秒(int)17 getHourOfDay() 返回对应天中的小时(int)18 toString(String pattern) 返回一个规定格式的String19

20 //demo21 //y:年,M:月,d:日,H:时,m:分,s:秒,E:星期

22 DateTime now =DateTime.now();23 System.out.println(now.toString("yyyy/MM/dd HH:mm:ss EE"));

DateTime中的常用方法

1 1. plus/minus开头的方法(比如:plusDay, minusMonths):用来返回在DateTime实例上增加或减少一段时间后的实例2 plus(longduration) 增加指定毫秒数并返回3 plusYears(intyears) 增加指定年份并返回4 plusMonths(intmonths) 增加指定月份并返回5 plusWeeks(intweeks) 增加指定星期并返回6 plusDays(intdays) 增加指定天数并返回7 plusHours(inthours) 增加指定小时并返回8 plusMinutes(intminutes) 增加指定分钟并返回9 plusSeconds(intseconds) 增加指定秒数并返回10 plusMillis(int millis) 增加指定毫秒并返回 -与之相反的是minus前缀的 plus是增加 minus是减少11

12 2. with开头的方法:用来返回在DateTime实例更新指定日期单位后的实例13 withCenturyOfEra(intcenturyOfEra) 更新时间世纪单位并返回14 withYearOfCentury(intyearOfCentury)更新世纪年并返回15 withYear(intyear) 更新时间年并返回16 withWeekyear(intweekyear) 更新时间周数并返回17 withMonthOfYear(intmonthOfYear)更新时间月份并返回18 withDayOfYear(intdayOfYear) 更新时间天数并返回19 withDayOfMonth(intdayOfMonth) 更新时间天数并返回20 withDayOfWeek(intdayOfWeek) 更新时间天数并返回21 withHourOfDay(inthour) 更新时间小时并返回22 withMinuteOfHour(intminute) 更新时间分钟并返回23 withSecondOfMinute(intsecond) 更新时间秒数并返回24 withMillisOfSecond(intmillis) 更新时间毫秒并返回25 withMillisOfDay(intmillis) 更新时间毫秒并返回26 withTimeAtStartOfDay() 获取当天最早时间27

28 3. 判断DateTime对象大小状态的一些操作方法29 compareTo(DateTime d) 比较两时间大小 时间大于指定时间返回 1 时间小于指定时间返回-1相等返回030 equals(DateTime d) 比较两时间是否相等31 isAfter(longinstant) 判断时间是否大于指定时间32 isAfterNow() 判断时间是否大于当前时间33 isBefore(longinstant) 判断时间是否小于指定时间34 isBeforeNow() 判断时间是否小于当前时间35 isEqual(longinstant) 判断时间是否等于指定时间36 isEqualNow() 判断时间是否等于当前时间37

38 4. jdk date互转39 DateTime dt = new DateTime(newDate()); jdk的date转换为DateTime40 Date jdkDate = dt.toDate() 转换为jdk的date

LocalDate的使用

LocalDate只处理年月日

默认构造器

1 LocalDate(int year, int monthOfYear, intdayOfMonth)2 LocalDate(long instant)

方法跟DateTime方法类似,就不单独整理了,可以去api查看详细方法

其他拓展方法

1 daysBetween(ReadableInstant start, ReadableInstant end) 获取两日期相差的天数2 hoursBetween(ReadableInstant start, ReadableInstant end) 获取两日期相差的小时数3 minutesBetween(ReadableInstant start, ReadableInstant end) 获取两日期相差的分钟数4 monthsBetween(ReadableInstant start, ReadableInstant end) 获取两日期相差的月数5 secondsBetween(ReadableInstant start, ReadableInstant end) 获取两日期相差的秒数6 weeksBetween(ReadableInstant start, ReadableInstant end) 获取两日期相差的周数7 yearsBetween(ReadableInstant start, ReadableInstant end) 获取两日期相差的年数8

9 //demo

10 LocalDate start = newLocalDate();11 LocalDate end = new LocalDate().minusDays(1);12 System.out.println(Days.daysBetween(start,end).getDays());

参考:https://blog.csdn.net/psh18513234633/article/details/79408096

java joda time_Java使用JodaTime处理时间相关推荐

  1. java 时间类 joda_Java Joda-Time 处理时间工具类(JDK1.7以上)

    import org.joda.time.*;importorg.joda.time.format.DateTimeFormat;importorg.joda.time.format.DateTime ...

  2. java joda time_使用Joda-Time优雅的处理日期时间

    原标题:使用Joda-Time优雅的处理日期时间 在Java中处理日期和时间是很常见的需求,基础的工具类就是我们熟悉的Date和Calendar,然而这些工具类的api使用并不是很方便和强大,于是就诞 ...

  3. java joda 获取utc时间_java – 使用JodaTime以毫秒为单位的UTC到本地时间

    我试图使用Jodatime显示特定时间段内的交易. 我们的服务器要求开始日期和结束日期为UTC(这可能是显而易见的).因此,围绕它们的任何业务逻辑都使用DateTime对象,时区设置为DateTime ...

  4. java joda datetime_Java如何在Joda-Time中格式化DateTime对象?

    该示例说明如何格式化日期的字符串表示形式.在Joda中,我们可以使用DateTime的classtoString()方法.该方法接受日期格式的模式和语言环境信息.package org.nhooo.e ...

  5. java joda time api_好用java库(一):java date/time api:joda-time

    基于java的项目,最大的一个好处是有很多开源,优秀的第三方jar包拿过来直接使用,但是引用第三方包时一定要小心审核,确认包的作者或组织的权威性,以免未知的第三方包对项目的性能,安全和正确性的影响.作 ...

  6. java joda 获取utc时间_java – JodaTime – 如何获取UTC的当前时间

    我想得到当前UTC的时间.到目前为止,我所做的只是为了测试目的: DateTime dt = new DateTime(); DateTimeZone tz = DateTimeZone.getDef ...

  7. Java时间操作类库—Joda-Time

    点赞再看,养成习惯,公众号搜一搜[一角钱技术]关注更多原创技术文章.本文 GitHub org_hejianhui/JavaStudy 已收录,有我的系列文章. 前言 上一周在做一个产品的需求的时候有 ...

  8. java joda datetime_Joda Time项目和java8时间api

    Joda Time出现的背景 在java1.0中,对日期和时间的支持只能依赖java.util.Date类.正如类名所表达的,这个类无法表示日期,只能以毫秒的精度表示时间.更糟糕的是它的易用性,由于某 ...

  9. java joda datetime_关于java:使用Joda将日期转换为DateTime

    本问题已经有最佳答案,请猛点这里访问. 是否可以使用Joda将格式为" YYYY-MM-dd"的日期转换为" YYYY-MM-dd HH:mm:ss"? 例如: ...

最新文章

  1. windows1064安装oracle,在Windows 10系统下安装Oracle 11g数据库
  2. CNN、RNN、GAN都是什么?终于有人讲明白了
  3. 无锡计算机硬件培训,无锡锡山办公软件电脑基础培训随到随学 学会为止
  4. Linux 中安装 Mysql
  5. c语言学习-从键盘输入三个数,按照从小到大(或从大到小)的顺序输出
  6. 基于ffmpeg入门学习相关的资料
  7. 【重识 HTML + CSS】知识点目录
  8. c语言程序如何链接到数据库,c语言如何链接到数据库
  9. 网页跳转代码的三种方法
  10. 基于Silverlight4开发的相关工具
  11. 申请免费的域名并且通过FTP上传及通过自己的域名访问自己的网站
  12. word高级技能之自动生成图目录/表目录
  13. 【漏洞学习——XSS】TOM邮箱存储型XSS一枚
  14. 很邪门的事,你知道多少?
  15. 路由器注册灯闪烁没网络
  16. 开源网上商城程序(简介国内外开源网店系统)
  17. TiDB -- TiDB CDC POC 测试
  18. 《脑与语言认知 江铭虎》读书总结
  19. html 刷新表格数据,当我刷新页面时在html表格上重复数据
  20. stdin,stderr,stdout

热门文章

  1. 杭电ACM 2014:青年歌手大奖赛_评委会打分
  2. 硕士阶段人工智能有哪些比较好的发论文的方向?
  3. 分享一些程序员接私活、兼职的平台
  4. 集成学习-Bagging和Pasting
  5. 微信小程序应该这样开发
  6. GPON Type B保护
  7. HttpClient4.4.1模拟登录知乎
  8. IO与文件读写---使用Apache commons io包提高读写效率
  9. 普源DSA1030-TG,9kHz-3GHz频谱分析仪
  10. 4p营销组合策略案例_营销组合策略的4P讲解