Joda Time 使用

近期一直做的几个功能都跟日期处理有关。比方推断今天是否登录。今天的最小时间。今天结束的最大时间等。

代码中都是用的JDK自带的 Calendar,使用起来相当费劲了,于是乎,忍不了,找到了一个名叫:JodaTime 的库,

眼下Joda Time 已经纳入 JDK 8 的官方API了,可是JDK 8还是非常遥远。以下我给大家演示几个实例:

1、  获取今天的開始时间:比方:2014-06-19 00:00:00


Joda Time


JDK


DateTime nowTime = new DateTime();

DateTime startOfDay =  nowTime.withTimeAtStartOfDay();


Calendar c1 = Calendar.getInstance();

c1.setTimeInMillis(timeInMs);

c1.set(Calendar.HOUR_OF_DAY, 0);

c1.set(Calendar.MINUTE, 0);

c1.set(Calendar.SECOND, 0);

c1.set(Calendar.MILLISECOND, 0);

return c1.getTimeInMillis();

2、  获取今天的结束时间:比方:2014-06-19 23:59:59


Joda Time


JDK


DateTime nowTime = new DateTime();

DateTime endOfDay =  nowTime.millisOfDay().withMaximumValue();


Calendar c1 = Calendar.getInstance();

c1.setTimeInMillis(timeInMs);

c1.set(Calendar.HOUR_OF_DAY, 23);

c1.set(Calendar.MINUTE, 59);

c1.set(Calendar.SECOND, 59);

c1.set(Calendar.MILLISECOND, 0);

return c1.getTimeInMillis();

3、  获取如今距离今天结束还有多长时间

DateTimenowTime = new DateTime();

DateTime endOfDay = nowTime.millisOfDay().withMaximumValue();

endOfDay.getMillis()-nowTime.getMillis()

4、  计算两个日期的相隔天数


Joda Time


JDK


DateTime nowTime = new DateTime();

DateTime futureTime = new DateTime(2015, 10, 1, 0, 0, 0);

Int days = Days.daysBetween(nowTime, futureTime).getDays();


(实现不是非常好)

public
static int
getBetweenDay(long startTime,
long endTime) {

Calendar start = Calendar.getInstance();

start.setTimeInMillis(startTime);

Calendar end = Calendar.getInstance();

end.setTimeInMillis(endTime);

return (int) ((end.getTimeInMillis() - start.getTimeInMillis()) / 86400000);

}

还有非常多比較方便的功能,能够自己去尝试。

推荐文章:http://www.ibm.com/developerworks/cn/java/j-jodatime.html

官方地址:http://www.joda.org/joda-time/

Maven 仓库:

<dependency>

<groupId>joda-time</groupId>

<artifactId>joda-time</artifactId>

<version>2.3</version>

</dependency>

时间: 2024-08-02 10:48:15

Joda Time 使用的相关文章

Scala - 处理时间(nscala-time - Joda Time的scala封装)

GITHUB : https://github.com/nscala-time/nscala-time MAVEN : (注意选对scala版本) <dependency> <groupId>com.github.nscala-time</groupId> <artifactId>nscala-time_2.10</artifactId> <version>2.6.0</version> </dependency&g

Joda开源扩展插件,神马日期工具类都是浮云!!Demo下载运行即可查看,注释齐全,真心好用,分享大家。

原文:Joda开源扩展插件,神马日期工具类都是浮云!!Demo下载运行即可查看,注释齐全,真心好用,分享大家. 源代码下载地址:http://www.zuidaima.com/share/1550463610604544.htm 真心好用,分享大家.

强大易用的日期和时间库 Joda Time

作为一名开发者,我们不可避免的会使用日期API,如果您使用过JDK的API,或者您会发现JDK的API用的很别扭,尤其是在做日期运算和比较的时候,幸好我们活在开源的世界,也有其他朋友遇到同样的问题,因此joda-time就这样应运而生,jotat-time就是为了简化日期的操作而创建的一个开源项目,正如您期望中的那样,它极大的简化了日期的操作. 日期API的常用使用的几个方面主要有以下几个: A.构造一个日期 B.对日期进行运算和比较 C.日期的格式化输出 A.构造一个日期   基于上面的API

joda jar日期处理类的学习

转载:http://www.open-open.com/lib/view/open1348032952724.html 任何企业应用程序都需要处理时间问题.应用程序需要知道当前的时间点和下一个时间点,有时它们还必须计算这两个时间点之间的路径.使用 JDK 完成这项任务将非常痛苦和繁琐.现在来看看 Joda Time,一个面向 Java™ 平台的易于使用的开源时间/日期库.正如您在本文中了解的那样,Joda-Time 轻松化解了处理日期和时间的痛苦和繁琐. 在编写企业应用程序时,我常常需要处理日期

joda time 与 jackson

joda time 据称是 jdk1.8 以前最好的时间系统,我觉得 joda time 的确比 java 自带的时间系统好用.java 自带的时间系统需要花很大的功夫来处理格式的问题,time 与 calendar 也没结合到一起,印象中,每次处理时间问题起码要写三行代码.因用 asyn mysql db 引入 joda time,但在 joda time 与 json 的序列化和非序列化时遇到了问题. val res = Tag(new LocalDate, "id", "

强大易用的日期和时间库 线程安全 Joda Time

https://www.ibm.com/developerworks/cn/java/j-jodatime.html 不可变性 我在本文讨论的 Joda 类具有不可变性,因此它们的实例无法被修改.(不可变类的一个优点就是它们是线程安全的) Joda-Time提供了一组Java类包用于处理包括ISO8601标准在内的date和time.可以利用它把JDK Date和Calendar类完全替换掉,而且仍然能够提供很好的集成. Joda-Time主要的特点包括: 1. 易于使用:Calendar让获取

ELK学习笔记(一)安装Elasticsearch、Kibana、Logstash和X-Pack

最近在学习ELK的时候踩了不少的坑,特此写个笔记记录下学习过程. 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收

开源介绍:Google Guava、Google Guice、Joda-Time

一.Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你的JAVa代码更加优雅,更加简洁,让你工作更加轻松愉悦.下面我们就开启优雅Java编程学习之旅! 项目相关信息: 官方首页:http://code.googl

【Scala】Scala之Numbers

一.前言 前面已经学习了Scala中的String,接着学习Scala的Numbers. 二.Numbers 在Scala中,所有的数字类型,如Byte,Char,Double,Float,Int,Long,Short都是对象,这七种数字类型继承AnyVal特质,这七种数字类型与其在Java中有相同的范围,而Unit和Boolean则被认为是非数字值类型,Boolean有false和true两个值,你可以获取到各个数字类型的最值. 复杂的数字和日期 如果需要更强大的数类,可以使用spire,sc