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

代码中都是用的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>

Joda Time 使用相关推荐

  1. joda time, jackson 与 scala 反射

    1. scala 反射,获得所有 field name 可以直接从 case class 获得 field 而不必创建实例 (get fields of a class without an inst ...

  2. joda jar日期处理类的学习

    转载:http://www.open-open.com/lib/view/open1348032952724.html 任何企业应用程序都需要处理时间问题.应用程序需要知道当前的时间点和下一个时间点, ...

  3. Java-小技巧-004-jdk时间,jdk8时间,joda,calendar,获取当前时间前一周、前一月、前一年的时间...

    1.推荐使用java8 localdate等 线程安全 支持较好 地址 2.joda 一.简述 查看SampleDateFormat源码,叙述有: * Date formats are not syn ...

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

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

  5. mysql 无法存储joda time的datetime类型

    com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '\xAC\xED\x00\x05sr\x ...

  6. Java日期及时间库插件 -- Joda Time.

    转载自   Java日期及时间库插件 -- Joda Time. 来到新公司工作也有一个多月了, 陆陆续续做了一些简单的项目. 今天做一个新东西的时候发现了 Joda Time的这个东西, 因为以前用 ...

  7. java中算两个时间内的秒数_java – Joda Time – 计算两个日期之间的秒数会引发异常....

    我使用以下代码来计算两个日期之间的秒数差异: long secondsBetween = (Seconds.secondsBetween(new LocalDate("1901-01-01& ...

  8. Java的时间类库joda教程

    使用原生Java操作时间是比较麻烦的,比如说简单的创建一个指定时间 String time = "2018-7-3 11:00:00"; SimpleDateFormat sdf ...

  9. 新的时间处理工具joda

    时间处理是在项目中经常用到的,时间处理一共三个, new Date().getYear(); 该方式已经弃用,第二种: calendar,用的最多,但实际用起来并不方便,现在推荐的是第三种: 使用jo ...

  10. joda DateTimeFormatter simpleDateFormat

    转自:  https://www.ibm.com/developerworks/cn/java/j-jodatime.html 今天看到一个大牛说道simpleDateFormat不是线程安全的,要换 ...

最新文章

  1. Android View体系(六)从源码解析Activity的构成
  2. Linux Shell 命令--cut
  3. tcp连接 本地端口_Windows开启端口转发功能
  4. wxWidgets:wxThreadHelper类用法
  5. php 正则表达式 x,php – 匹配x正则表达式或y正则表达式
  6. activiti 多部门审批_Activiti 基本介绍
  7. Tensorflow卷积神经网络
  8. pytest测试框架(四)---使用pytest-html生成测试报告
  9. linux 脚本 等待,shell tel脚本中执行等待实现
  10. c语言如歌输出空字符,沈阳航空航天大学毕业设计(论文).doc
  11. linux 忘记mysql密码的解决办法
  12. CSS:输入框input光标距离输入框左边间距设置
  13. 音频噪声抑制_音频编辑入门指南:基本噪声消除
  14. 一文读懂机器学习(转)
  15. Social Influence as Intrinsic Motivation for Multi-Agent Deep Reinforcement Learning-笔记
  16. cad文件转高清图片jpg格式文件
  17. 使用AJAX 和php数组两种方式获取LOL英雄信息
  18. 华云数字实名认证图片_“云联盟华云数字”是云数贸传销组织衍生平台!不要被骗了...
  19. 如何设置CentOS 7获取动态ip地址
  20. 云服务器怎么配置cpu与内存搭配

热门文章

  1. CMPUT 291 (Fall 2018 LAB LEC): Mini-Project
  2. linux无法更改屏幕亮度调节软件,Ubuntu 无法调节并保存屏幕亮度解决办法
  3. SPL学习笔记(一)
  4. C++ string常用函数(翻转字符串、获得字符串子串)(更新中)
  5. Openlayers4动态绘制地图分幅网络
  6. Windows下Docker配置安装加速器
  7. Redis 5 集群扩容、缩容详解
  8. 2022-2027年中国益智玩具行业市场深度分析及投资战略规划报告
  9. 段码液晶屏如何修复?
  10. 纯CSS3手风琴图片滑动特效