Java计算两个日期时间之间的天数最简方法
有一种low的方式,就是你把两个时间都换成秒,然后除以一天的秒数,然后向上取整,就是算的天数。但是这么实现太low啦。
jdk有高级的API,我们为啥还要自己去实现呢,问题就是我们不知道。
所以,我在这写个笔记,记录下,jdk 1.8 是怎么做的。
/** * 计算两个时间点之间的天数 */ private static void getBetweenDay() { LocalDate start = LocalDate.of(2018, 2, 12); LocalDate now = LocalDate.now(); System.out.println("两个时间之间的天数是:" + TimesUtils.getBetweenDay(start, now) + " 天。"); } /** * 计算两个时间点之间的天数 */ public static long getBetweenDay(LocalDate start, LocalDate end) { return end.toEpochDay() - start.toEpochDay(); }
后面的那个方法就是重点啦。
LocalDate.toEpochDay()。
将日期转换成Epoch 天,Epoch就是从1970-01-01(ISO)。开始的天数,和那个时间戳是一个道理,时间戳是秒数。
文章是简单了点,也许太简单了点。就当做个笔记吧。
感谢大家对我们的支持。
相关推荐
-
利用Java中Calendar计算两个日期之间的天数和周数
前言 究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历.阴(农)历之分.它们的区别在哪呢? 比如有: 月份的定义 - 阳`(公)历 一年12 个月,每个月的天数各不同:阴(农)历,每个月固定28天 每周的第一天 - 阳(公)历星期日是第一天:阴(农)历,星期一是第一天 实际上,在历史上有着许多种纪元的方法.它们的差异实在太大了,比如说一个人的生日是"八月八日" 那么一种可能是阳(公)历的八月八日,但也可以是阴(农)历的日期.所以为了计时
-
Java编程实现计算两个日期的月份差实例代码
本文实例主要实现计算两个日期的月份差,具体如下: package com.forezp.util; import org.joda.time.DateTime; import org.joda.time.Months; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; /** * 在JAVA中,如何计算两个日期的月份差?<br> * * * @author Adm
-
Java中使用LocalDate根据日期来计算年龄的实现方法
Java中和日期直接相关的类有很多,平时最常用到的就是java.util package下面的Date和Calendar,需要用到格式的时候还会用到java.text.SimpleDateFormat 首先吐槽一下,Date和Calendar实际用起来还是有一些别扭的,刚开始用的时候不熟悉,老是分不清Date和Calendar类的具体用法和区别. 而且Calendar类的set方法来设置日期时又有一些反人类,设置月份的时候总是要脑补一下减去1,比如要设置为2018年1月6日就要设置成2018,0
-
Java简单计算两个日期月数差的方法
本文实例讲述了Java简单计算两个日期月数差的方法.分享给大家供大家参考,具体如下: /** * 获取两个日期相差的月数 * @param d1 较大的日期 * @param d2 较小的日期 * @return 如果d1>d2返回 月数差 否则返回0 */ public static int getMonthDiff(Date d1, Date d2) { Calendar c1 = Calendar.getInstance(); Calendar c2 = Calendar.getInsta
-
java计算两个日期中间的时间
java计算两个日期中间的时间 其中在数据库中有一个字段为datetime类型,想要计算两个日期之间过了多少天 多少小时 多少分钟. 思路为把时间换算为毫秒(与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位测量).然后利用毫秒的加减计算. 计算如下: public static String getDays(Date date){ Calendar cal=Calendar.getInstance(); cal.setTime(date); long oldTime=ca
-
java实现简单日期计算功能
本文讲的java日期计算比较偏,用到的地方很少(比如获取今天所在周的周一或者周日,获取今天是本月的第几周...),这些方法是以前做项目遗留下来的,现在整理一下,跟大家分享. 工具类主要有一下方法: public static Date getFirstMondayOfMonth(String dateString, String dateFormat) throws Exception 获取指定月份的第一个星期一,比如2014-12 月的第一个周一是2014-12-01 public stati
-
利用Java计算某个日期是星期几
话不多说,下面来直接看示例代码 具体代码: DayOfWeek4Birthday.java package com.gua; import java.util.Calendar; import java.util.GregorianCalendar; import java.io.*; import static java.lang.System.out; /** * Created by 2gua on 2014/9/27. * DayOfWeek4Birthday:看看你查询的具体日子是星期
-
java计算两个日期之前的天数实例(排除节假日和周末)
如题所说,计算两个日期之前的天数,排除节假日和周末.这里天数的类型为double,因为该功能实现的是请假天数的计算,有请一上午假的为0.5天. 不够很坑的是每个日期都要查询数据库,感觉很浪费时间. 原则: 1.节假日存放在数据库中 实现步骤: 1.循环每个日期 2.判断每个日期是否为节假日或者为周末 3.若不是节假日和周末,天数+1 代码: public double calLeaveDays(Date startTime,Date endTime){ double leaveDays = 0;
-
JAVA计算两个日期相差的实例
在Java开发物流或是其他功能的时候会用到两个日期 相差多天的数据,所以整理了一下备用.调用方式: 复制代码 代码如下: long date1 = getDateTime("20121201");//可改成自己的日期类型,但以 "20121212"这种格式 long date2 = getDateTime("20121212"); int day = dateInterval(date1, date2); System.out.print
-
常用的java日期比较和日期计算方法小结
本文为大家分享的都是常用的日期之间的比较方法,供以后参考. 热身:获取当前时间 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 String nowDate = df.format(new Date());// new Date()为获取当前系统时间 注:楼主一直以为date类型不如string类型随心所欲,所以下面的比较都是string类型的date进行比较.如果你真的真的就是那么
随机推荐
- MySQL分区表的局限和限制详解
- jQuery Masonry瀑布流布局神器使用详解
- mapper--图片热点区域高亮组件官方站点
- JS常用正则表达式及验证时间的正则表达式
- iOS UIWebView实现禁止用户复制剪切功能
- Oracle数据库并行查询出错的解决方法
- asp.net利用NamingContainer属性获取GridView行号的方法
- 在ASP.NET 2.0中操作数据之十六:概述插入、更新和删除数据
- 建站常用13种PHP开源CMS比较
- php 正确解码javascript中通过escape编码后的字符
- Python读取图片属性信息的实现方法
- 浅谈js数据类型判断与数组判断
- 深入讲解C#编程中嵌套类型和匿名类型的定义与使用
- 分享dos批处理命令的一些使用技巧(截取字符串)
- Ubuntu 17.04系统下源码编译安装opencv的步骤详解
- PHP使用json_encode函数时不转义中文的解决方法
- ionic实现下拉刷新载入数据功能
- JAVA代码开发规范
- C#实现清空回收站的方法
- Stream.Write 与 StreamWriter.Write 的不同