Java之Joda工具包处理时间的7点总结分享

开心一笑

【颜宇扬考了最后一名,在家长会后,写了期末总结:1)有本事冲我来,别在家长会上吓唬我爸!2)期末考试成绩出来了,我觉得我妈生二台是非常明智的选择。3)这场考试对于我的意义就是知道了班级到底有多少人。4)期末考试不给老师们露一手,他们还真以为自己教的好。我想说:孩子没事,这么可爱,哥教你......】

Java之Joda工具包处理时间的7点总结分享_第1张图片
冬季唯美图片

提出问题

Joda Time日期时间工具包比较好用的类有哪些???

解决问题

1.Joda简单介绍

Joda-Time,一个面向Java平台的易于使用的开源时间/日期库。处理时间的工具包有很多,JDK的Calendar和Apache-Commons-Lang的DateUtils都有提供相关好用的API,但是对比下Joda-Time,最好我还是选择它。因为它提供更优雅的编程,更简洁的代码,和更强大的时间处理。总而言之,它是非常好用的

2.Maven引入

Maven引入很简单,就不说了



    joda-time
    joda-time
    2.9.6

3.关于日期处理的框架考虑

在一个公司的框架中,不一定说我们就得使用Joda Time来处理时间。我们还是得按照公司的规范来。我发现我们公司对于日期处理,有人使用JDK的Calendar,有人使用Commons-Lang的DateUtils,甚至还有人自己封装日期处理工具类,自己造轮子,而我是渐渐使用Joda-Time,被它迷人的身躯所吸引而一发不可收拾。在这里我想说的是:

在项目框架中,我们应该统一使用一种日期处理工具,而不要混着用。

4.Joda和JDK互操作性

Joda 的类能够生成java.util.Date的实例(和 Calendar)。这使我们能够保留现有的依赖JDK的代码,但是又能够使用Joda处理复杂的日期/时间计算。这一点在下面会有更多的
描述。

5.创建Joda-Time对象

5.1最简单的构造DateTime形式:

DateTime dateTime = new DateTime();

5.2通过指定字段值构建了一个 DateTime 对象

DateTime dateTime = new DateTime(
  2000, //year
  1,    // month
  1,    // day
  0,    // hour (midnight is zero)
  0,    // minute
  0,    // second
  0     // milliseconds
);

5.3将Date对象直接传递给构造函数

Date jdkDate = new Date();
//转化为Joda对象
DateTime dateTime = new DateTime(jdkDate);
//转化为JDK对象
Date changeToJdkDate = dateTime.toDate();

5.4直接将不同对象传递给DateTime的构造函数

// Use a Calendar
java.util.Calendar calendar = obtainCalendarSomehow();
dateTime = new DateTime(calendar);
// Use another Joda DateTime
DateTime anotherDateTime = obtainDateTimeSomehow();
dateTime = new DateTime(anotherDateTime);
// Use a String (must be formatted properly)
String timeString = "2006-01-26T13:30:00-06:00";
dateTime = new DateTime(timeString);
timeString = "2006-01-26";
dateTime = new DateTime(timeString);

6.一个简单的例子

网上例子很多,我就不写了,我就简单的引用网上的一个例子,跟多内容,可以自己去学习。

例如:计算11月中第一个星期一之后的第一个星期二:

LocalDate now = SystemFactory.getClock().getLocalDate();
LocalDate electionDate = now.monthOfYear()
 .setCopy(11)        // November
 .dayOfMonth()       // Access Day Of Month Property
 .withMinimumValue() // Get its minimum value
 .plusDays(6)        // Add 6 days
 .dayOfWeek()        // Access Day Of Week Property
 .setCopy("Monday")  // Set to Monday (it will round down)
 .plusDays(1);       // Gives us Tuesday

.setCopy("Monday") 是整个计算的关键。不管中间 LocalDate 值是多少,将其 dayOfWeek 属性设置为 Monday 总是能够四舍五入,这样的话,在每月的开始再加上 6 天就能够让您得到第一个星期一。再加上一天就得到第一个星期二。Joda 使得执行此类计算变得非常容易。

7.以Joda方式格式化时间

7.1 传递 SimpleDateFormat 字符串

DateTime dateTime = SystemFactory.getClock().getDateTime();
dateTime.toString("MM/dd/yyyy hh:mm:ss.SSSa");
dateTime.toString("dd-MM-yyyy HH:mm:ss");
dateTime.toString("EEEE dd MMMM, yyyy HH:mm:ssa");
dateTime.toString("MM/dd/yyyy HH:mm ZZZZ");
dateTime.toString("MM/dd/yyyy HH:mm Z");

09/06/2009 02:30:00.000PM
06-Sep-2009 14:30:00
Sunday 06 September, 2009 14:30:00PM
09/06/2009 14:30 America/Chicago
09/06/2009 14:30 -0500

读书感悟

来自马歇尔·卢森堡《非暴力沟通》

  • 如果真的想过上悲惨生活,就去与他人作比较。
  • 非暴力沟通的四个要素:1、观察;2、感受;3、需要;4、请求。
  • 在一个生气的人面前,永远不要用“不过”“可是”“但是”之类的词语。
  • 所有愤怒的核心是需求没有被满足。
  • 批评往往暗含着期待。对他人的批评实际上间接表达了我们尚未满足的需要。
  • 让梦想中的世界通过我们的转变得以实现,我相信,除非从我做起,我们的梦想就不可能实现,不幸的是,我们总是希望别人先开始改变。

经典故事

【两个人在森林里,遇到了一只大老虎。A就赶紧从背后取下一双更轻便的运动鞋换上。B急死了,骂道:“你干嘛呢,再换鞋也跑不过老虎啊!”
A说:“我只要跑得比你快就好了。”】

大神文章

【1】Joda-Time 简介
【2】http://mvnrepository.com/artifact/joda-time
【3】Joda-Time 简介(引用) / 例子Example(自己)/ 官网例子
【4】日期工具类 - DateUtil.java

Java之Joda工具包处理时间的7点总结分享_第2张图片
冬季唯美图片

其他

如果有带给你一丝丝小快乐,就让快乐继续传递下去,欢迎点赞、顶、欢迎留下宝贵的意见、多谢支持!

你可能感兴趣的:(Java之Joda工具包处理时间的7点总结分享)