java 的时间利器:joda

用户头像
毛佳伟🐳
关注
发布于: 2020 年 06 月 01 日

1.0 简介

在java中,时间处理一直是个问题,虽然java有原生的Date和Calendar,作为日期处理工具,但是不管是代码的美观度还是使用的便捷度都仍不是很方便,今天推荐一款方便的java日期工具:Joda。



2.0 代码注入

如果为maven项目,则需要通过添加maven依赖进行添加。本文推荐的版本为2.9.0

<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.0</version>
</dependency>



3.0 使用方法

3.1 基本使用

joda默认的时间处理类为org.joda.time.DateTime,下面的代码将展示该类对应的使用方法:

  1. 默认开始时间为当前时间

// 默认当前时间
DateTime dateTime1 = new DateTime();
// 输出日期字符串,格式为:YYYY-MM-dd
System.out.println(dateTime1.toString("yyyy-MM-dd"));
// 显示结果:2020-06-01



  1. 根据字符串的时间转换

// 如果为YYYY-MM-dd格式字符 即为指定时间
DateTime dateTime2 = new DateTime("2020-01-01");
// 输出日期字符串,格式为:YYYY-MM-dd HH:mm:ss
System.out.println(dateTime2.toString("yyyy-MM-dd HH:mm:ss"));
// 显示结果:2020-01-01 00:00:00



  1. java的日期Date对象转换DateTime

// 基于java的日期Date对象转换DateTime
DateTime dateTime3 = new DateTime(date);
System.out.println(dateTime3.toString("yyyy-MM-dd"));
// 将DateTime转换Date
Date date2 = dateTime3.toDate();



  1. 自定义格式转换

// 日期格式定义
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
// 根据格式定义DateTime
DateTime dateTime4 = DateTime.parse("2020-06-01 12:00:00", formatter);
System.out.println(dateTime4.toString("yyyy-MM-dd HH:mm:ss"));



3.2 日期处理



  1. 年转换

// 年转换
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



  1. 月转换

// 月转换
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



  1. 周转换

// 周转换
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



  1. 时转换

// 时转换
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



4.0 其他

其他还有分、秒与毫秒的时间处理,我就不多介绍了,希望大家能从本篇文章开始,好好使用joda工具。



发布于: 2020 年 06 月 01 日 阅读数: 31
用户头像

毛佳伟🐳

关注

还未添加个人签名 2017.10.17 加入

还未添加个人简介

评论 (1 条评论)

发布
用户头像
2020 年 06 月 04 日 10:02
回复
没有更多了
java的时间利器:joda