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

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

}

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

Maven 仓库:

joda-time

joda-time

2.3

java 8 joda time,Joda Time 使用相关推荐

  1. java.lang.NoClassDefFoundError: org/joda/time/YearMonth

    今天在新建一个spring boot项目时,遇到这错: java.lang.NoClassDefFoundError: org/joda/time/YearMonth java.lang.NoClas ...

  2. Java的时间类库joda教程

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

  3. Java 项目还需要 joda 吗

    因为众所周知的原因,老的 Java 中的日期处理是非常不好用但是又不得不用的 API. 而且经常混乱还容易出错,相信大家应该都用过救民于水火的 joda Datetime 对象吧,简直是活菩萨. 时间 ...

  4. java 计算周_java – Joda时间周计算推理

    下面的代码演示了星期计算的有问题的joda-time实现.这种行为不是错误,而是设计决策 Joda-Time uses the ISO standard Monday to Sunday week.( ...

  5. java joda datetime_关于java:使用Joda将日期转换为DateTime

    本问题已经有最佳答案,请猛点这里访问. 是否可以使用Joda将格式为" YYYY-MM-dd"的日期转换为" YYYY-MM-dd HH:mm:ss"? 例如: ...

  6. joda time, jackson 与 scala 反射

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

  7. java改变变量编码方式_Java 8中的5个功能将改变您的编码方式

    java改变变量编码方式 Java 8在JVM和语言级别都包含了一些非常令人兴奋的功能. 尽管最初为该发行版设想的某些功能已扩展到第9版,或已推出第9版,但实际上有数十个新功能. 许多新添加的内容在编 ...

  8. Java 8中的5个功能将改变您的编码方式

    Java 8在JVM和语言级别都包含了一些非常令人兴奋的功能. 虽然最初为该发行版设想的某些功能已扩大范围或已推出到第9版,但实际上有数十个新功能. 许多新添加的内容在编译器,JVM或帮助系统级别都进 ...

  9. Java 8日期– LocalDate,LocalDateTime,即时

    Java 8 Date Time API is one of the most sought after change for developers. Java has been missing a ...

最新文章

  1. 安装需要的第三方库时,命令行输入pip提示不是内部或外部命令
  2. 240个jquery插件
  3. 腾讯优图实验室-计算机视觉(日常实习生招聘)
  4. SQL Server中的命名规范(个人使用)
  5. DS18B20 理解与操作源码
  6. mysql刷新权限1146_MySQL重置root密码,刷新权限表报错ERROR 1146(42S02):Table ‘mysql.servers’ doesn`t exist...
  7. layui根据条件显示列_templet渲染layui表格数据的三种方式
  8. 【Android】窗口构成 应用窗口+系统窗口
  9. 【转】C#各类控件的输入输出(思维导图、知识点分析、案例解析)
  10. JDK1.8中String类的intern()方法学习
  11. 基于FPGA的红外遥控解码与PC串口通信
  12. php 手机屏幕,90hz和60hz手机屏幕差别大吗
  13. cookie分号后面没有值_Cookie的属性(cookie的设置、获取和删除)
  14. 在线预览word,excel,ppt
  15. android源码百度网盘下载(AOSP源码集合)
  16. window10官方工具在线升级失败,终极解决方案
  17. matlab设置脚本,MATLAB脚本和功能
  18. HTTP 请求头 Header
  19. ORacle异常:ORA-00980:同义词转换不再有效
  20. 警告 C4819 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

热门文章

  1. Oracle SQL Developer使用dbms_output.put_line显示输出
  2. 聚合支付与第四方支付平台的本质区别
  3. 微信小程序生成0到100随机整数
  4. 微信开放平台创建应用时应用官网的问题
  5. python人像精细分割_基于UNet网络实现的人像分割 | 附数据集
  6. 使用NSIS脚本制作一个安装包
  7. 如何制作路演PPT?
  8. 《玩转Deepin第一篇 · Deepin系统的介绍和安装》
  9. 十进制转换为二进制、原码、反码、补码、移码
  10. 三个和尚比身高,已告知三个和尚的身高