开心一笑
【颜宇扬考了最后一名,在家长会后,写了期末总结:1)有本事冲我来,别在家长会上吓唬我爸!2)期末考试成绩出来了,我觉得我妈生二台是非常明智的选择。3)这场考试对于我的意义就是知道了班级到底有多少人。4)期末考试不给老师们露一手,他们还真以为自己教的好。我想说:孩子没事,这么可爱,哥教你......】
提出问题
Joda Time日期时间工具包比较好用的类有哪些???
解决问题
1.Joda简单介绍
Joda-Time,一个面向Java平台的易于使用的开源时间/日期库。处理时间的工具包有很多,JDK的Calendar和Apache-Commons-Lang的DateUtils都有提供相关好用的API,但是对比下Joda-Time,最好我还是选择它。因为它提供更优雅的编程,更简洁的代码,和更强大的时间处理。总而言之,它是非常好用的
2.Maven引入
Maven引入很简单,就不说了
<!-- https://mvnrepository.com/artifact/joda-time/joda-time -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.6</version>
</dependency>
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
其他
如果有带给你一丝丝小快乐,就让快乐继续传递下去,欢迎点赞、顶、欢迎留下宝贵的意见、多谢支持!