首先给出一个错误的实现:

// time1, time2 分别是 UTC 毫秒间隔

public static boolean getDayInterval(long time1, long time2) {

long base = 24*3600*1000L;

long day1 = time1/base + 1;

long day2 = time2/base + 1;

return (day1 - day2);

}

上面的代码之所以错误,因为涉及到时区了,中国大陆的时区是 UTC + 8。

涉及到时区操作,使用 Calendar 类:

public static boolean isSameDay(long time1, long time2) {

Calendar calendar1 = Calendar.getInstance();

calendar1.setTimeInMillis(time1);

Calendar calendar2 = Calendar.getInstance();

calendar1.setTimeInMillis(time2);

return calendar1.get(Calendar.DAY_OF_MONTH) == calendar2.get(Calendar.DAY_OF_MONTH);

}

上面的代码可以判断两个时间,在本地时区中是不是同一天,但是怎样计算天数间隔呢?我们需要在 UTC 时间的基础上加上那 8 个小时,得到本地时区的毫秒数,然后再计算间隔天数,正确代码如下:

public static long getDayInterval(long time1, long time2) {

// 获得当前时区

TimeZone tz = TimeZone.getDefault();

// UTC毫秒加上这个偏移值,得到本地时区的时间

long delta = tz.getRawOffset();

long base = 24*3600*1000L;

long day1 = (time1+delta)/base + 1L;

long day2 = (time2+delta)/base + 1L;

System.out.println(new Date(time1));

System.out.println(new Date(time2));

System.out.println(day1);

System.out.println(day2);

return (day1-day2);

}

来源:https://www.cnblogs.com/allenwas3/p/8926895.html

java 计算间隔天数,java 计算间隔的天数相关推荐

  1. java前台计算date差_js前台计算两个日期的间隔时间

    js前台计算两个日期的间隔时间(时间差) 原创 2017年08月28日 16:09:43 标签:javascript 1144 在后台传来两个时间字段,从中解析出两个字符串类型的日期格式 需要在前台解 ...

  2. java计算两个日期之间的天数(java计算两个日期之间的天数算法)

    两个日期之间的天数要怎么计算? 两个日期之间的天数的计算=日期相减+1.比如:六月一号到六月三号,这之间是3天,分别是:一号.二号.三号,算式:3-1+1=3(天).同理,2001年到2002年是2年 ...

  3. Java 某个起始时间,固定的累加天数,计算周期

    Java 某个起始时间,固定的一个天数相加,计算周期每次加过后的周期 前言 项目中有这么一个业务场景,数据库中某张表有个起始时间,和一个累加时间,比如2020-01-07,往后每次加3天为一个周期,到 ...

  4. Java计算两个字符串日期之间的天数差

    Java计算两个字符串日期之间的天数差 调用方法: public static void main(String[] args) throws ParseException {String a = & ...

  5. Java计算两个时间段内的工作日天数

    一般在OA系统中都会遇到计算员工这段时间内的工作天数. 这种有两种方式可以解决:一是调用第三方服务接口进行计算,二是自己在系统中写代码计算. 一的好处就是每年的节假日不用自己去维护直接用两个时间段就可 ...

  6. Java 计算任意两天之间相隔的天数

    在学习了Java中的Date类相关的方法之后,我试着自己写了小程序可以计算任意两天之间相隔的天数,挺好用的. 设计思路: 运用Date类中提供的getTime()方法,获取输入的日期与1990-01- ...

  7. java 两个日期的天数_计算Java 8中两个日期之间的天数

    我知道有很多关于如何获得的问题,但我想要和使用新的Java 8 Date api的例子. 我也知道JodaTime库,但我想要一种没有外部库的工作方式. 功能需要抱怨这些限制: 防止日期保存时间错误 ...

  8. java 计算日期相差天数_JAVA计算两个日期之间相差的天数

    这是本人第一次写博客,主要计算两个日期之间相差的天数 import java.text.ParseException; import java.util.Date; import org.apache ...

  9. java calendar日期计算_利用Java中Calendar计算两个日期之间的天数和周数

    前言 究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历.阴(农)历之分.它们的区别在哪呢? 比如有: 月份的定义 - 阳`(公)历 一年12 个月,每 ...

  10. java 根据开始日期 ,需要的工作日天数 ,计算工作截止日期,并返回截止日期

    我也参考过其他的方案, 提供一个代码简洁的方案,具体性能没有测试过, 经过测试,跨年也可以正确计算截止日期: /*** 根据开始日期 ,需要的工作日天数 ,计算工作截止日期,并返回截止日期* @par ...

最新文章

  1. Dubbo原理何源码解析之服务暴露
  2. super() 函数??
  3. 聊聊C语言和指针的本质
  4. 计算机网络:子网划分、子网掩码、CIDR 、路由聚合相关计算详解
  5. 2019蓝桥杯省赛---java---C---4(质数)
  6. 4~20mA模拟输出(电流环)应用笔记(转)
  7. presto java_Presto Jdbc
  8. flash挂载到系统 spi_jffs2根文件系统挂载不上spi flash
  9. 精品课程教学网站中系统设计如何写
  10. 「日常温习」Hungary算法解决二分图相关问题
  11. 怎样将short[]数组转换成byte[]数组
  12. 函数最值题目及答案_高考数学攻克压轴题:圆锥曲线取值范围和最值问题解题模型...
  13. android 入门-git之上传本地代码到github
  14. 智能车制作pdf 王盼宝_智能车制作——从元器件、机电系统、控制算法到完整的智能车设计(Word+PDF+ePub+PPT)...
  15. oracle 字段带数字,解决Oracle字符串中包含数字、特殊符号的排序问题
  16. 逻辑学入门很简单 笔记 一些逻辑学常见概念
  17. winows服务器的ftp密码如何修改,windows怎么修改服务器ftp密码
  18. 恺撒密码算法 Java实现
  19. python 语料_用python将语料转化为可计算的形式
  20. 计算机导论 宋斌,宋斌(计算机科学与技术学院)老师 - 南京理工大学 - 院校大全...

热门文章

  1. 人民币对美元汇率中间价报6.7802元 上调167个基点
  2. 如何找到人生方向目标?
  3. 时隔一年,我又来捣鼓我家移动光猫了,你还不知道如何获取公网ip吗?
  4. 未完成:读书笔记01芝加哥大学论文写作指南_Kate L. Turabian
  5. 对微信部分改进的看法
  6. 土木/岩土期刊版面费/审稿费统计列表
  7. HTML Typo.css 中文网页重设与排版
  8. FAI自动部署debian
  9. BUFF67 DM蓝牙5.2双模热插拔PCB
  10. Flink Event Time / Processing Time / Ingestion Time (事件时间/处理时间/摄取时间)