本文实例为大家分享了java如何获取两个日期的时间差,供大家参考,具体内容如下

rainBeginTime是从本地数据库获取的时间,格式为”yyyy-MM-ddTHH:mm:ss“。

主要逻辑:

@SuppressLint("SimpleDateFormat")

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

df.setTimeZone(TimeZone.getTimeZone("GMT+08"));// 这里一定要设置GMT时区

String currentTime = df.format(new Date());

Date date1 = MyDateUtil.parseDate(trainBeginTime.replace("T"," "), "yyyy-MM-dd HH:mm:ss");

Date date2 = MyDateUtil.parseDate(currentTime, "yyyy-MM-dd HH:mm:ss");

// 获取相差的天数

Calendar calendar = Calendar.getInstance();

calendar.setTime(date1);

long timeInMillis1 = calendar.getTimeInMillis();

calendar.setTime(date2);

long timeInMillis2 = calendar.getTimeInMillis();

long betweenDays = ((timeInMillis2 - timeInMillis1) / (1000L*3600L*24L))+2;

textView.setText("时间相差"+betweenDays+"天");

其中MyDateUtil.java:

import android.os.Build;

import androidx.annotation.RequiresApi;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.time.Instant;

import java.time.LocalDate;

import java.time.ZoneId;

import java.time.ZonedDateTime;

import java.util.Calendar;

import java.util.Date;

/**

* Description: 日期工具类

*/

public class MyDateUtil {

/**

* 将指定的日期字符串转换成日期

* @param dateStr 日期字符串

* @param pattern 格式

* @return 日期对象

*/

public static Date parseDate(String dateStr, String pattern)

{

SimpleDateFormat sdf = new SimpleDateFormat(pattern);

Date date;

try {

date = sdf.parse(dateStr);

} catch (ParseException e) {

throw new RuntimeException("日期转化错误");

}

return date;

}

/**

* 将指定的日期格式化成指定的日期字符串

* @param date 日期对象

* @param pattern 格式

* @return 格式化后的日期字符串

*/

public static String dateFormate(Date date, String pattern)

{

SimpleDateFormat sdf = new SimpleDateFormat(pattern);

String dateStr;

if(date == null)

{

return "";

}

dateStr = sdf.format(date);

return dateStr;

}

/**

* 查询指定日期前后指定的天数

* @param date 日期对象

* @param days 天数

* @return 日期对象

*/

public static Date incr(Date date, int days)

{

if (date == null){

return null;

}

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

calendar.add(Calendar.DAY_OF_MONTH, days);

return calendar.getTime();

}

/**

* 将LocalDate日期转化成Date

* @param localDate LocalDate对象

* @return Date对象

*/

@RequiresApi(api = Build.VERSION_CODES.O)

public static Date localDateToDate(LocalDate localDate)

{

if (localDate == null)

{

return null;

}

ZoneId zoneId = ZoneId.systemDefault();

ZonedDateTime zonedDateTime = localDate.atStartOfDay(zoneId);

Date date = Date.from(zonedDateTime.toInstant());

return date;

}

/**

* 将Date转成LocalDate对象

* @param date Date对象

* @return LocalDate对象

*/

@RequiresApi(api = Build.VERSION_CODES.O)

public static LocalDate dateToLocalDate(Date date)

{

if (date == null)

{

return null;

}

ZoneId zoneId = ZoneId.systemDefault();

Instant instant = date.toInstant();

LocalDate localDate = instant.atZone(zoneId).toLocalDate();

return localDate;

}

}

更多关于java时间操作的文章,请点击专题:《java时间操作》

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java 获取两个时间差_java如何获取两个日期的时间差相关推荐

  1. java中取系统时间_JAVA中获取当前系统时间(示例代码)

    一. 获取当前系统时间和日期并格式化输出: import java.util.Date;import java.text.SimpleDateFormat; public class NowStrin ...

  2. java获取数据库当前时间_java中获取系统的当前时间

    转自:http://www.cnblogs.com/Matrix54/archive/2012/05/01/2478158.html 一. 获取当前系统时间和日期并格式化输出: import java ...

  3. java计算时间差_Java中计算两个日期的时间差

    这篇文章将使用两个例子计算两个日期的时间差. 1.使用Java SDK. 2.使用Joda库. 1.使用Java SDK 计算两个Date之间的时间差,基本思路为把Date转换为ms(微秒),然后计算 ...

  4. java array 元素的位置_java中的两种排序工具Arrays和Collections的使用

    java中的排序工具主要是有两个Arrays和Collections.我们一个一个来讲解. 本来写好了每一种方法的测试代码,后来又给删了,因为我觉得如果想要去了解的话,可以直接查看这些常用的即可.因为 ...

  5. java 取两个时间间隔_Java:获取时间间隔

    我正在进行一个以hh:mm捕获间隔时间的项目. 我有2个名为btnTimeOut&的按钮. btnTime在单击时捕获系统时间. 要求是获得btnTimeOut和amp;之间的间隔. btnT ...

  6. java获取object属性值_java反射获取一个object属性值代码解析

    有些时候你明明知道这个object里面是什么,但是因为种种原因,你不能将它转化成一个对象,只是想单纯地提取出这个object里的一些东西,这个时候就需要用反射了. 假如你这个类是这样的: privat ...

  7. java 文件去除扩展名_Java操作——获取文件扩展名,去掉文件扩展名

    昨天收邮件,得知要参加一个产品部的会议,猜想,也许是因为我做的这个产品demo问题.于是昨天忙活到凌晨3点半,结果早上一来才知道又被调戏了.发邮件的MM把邮件误发给我了.悲催啊有木有,困啊有木有!自己 ...

  8. java 获取所有实现类_Java动态获取实现某个接口下所有的实现类对象集合

    Java动态获取实现某个接口下所有的实现类对象集合 最近有个需求,我需要获取所有同一类型的定时任务的对象,并自动执行. 我想的方案是:直接获取某个接口下面所有的实现类的对象集合,方便以后只需要 实现这 ...

  9. java 反射获取父类的字段_java反射获取父类和子类字段值、赋值

    这里将告诉您java反射获取父类和子类字段值.赋值,具体操作过程:java反射获取字段值.赋值 import org.springframework.util.ReflectionUtils; imp ...

最新文章

  1. 码神之路博客项目构建记录
  2. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波10 - 直方图处理 - 局部直方图处理
  3. Android中的Handler的具体用法
  4. 如何帮用户管好云账本?阿里云数据库助力收钱吧 | 甲子光年
  5. mysql集群搭建(使用docker 一主一从)
  6. springboot细节挖掘(jar和war打包)
  7. 解码(三):AVFrame格式解析和空间处理函数
  8. 01.26 小组功能初步总结
  9. visual studio(vs)中项目解决方案的目录组织安排
  10. 树莓派(RespberryPi)安装手记
  11. ArcGIS知乎干货教程大集合
  12. Oracle数据库练习题(3)
  13. php亲戚称谓计算源码,亲戚称呼(亲戚关系计算器在线)
  14. 安全好用的快充头,iPhone 13的好搭档,RAVPOWER 20W充电器上手
  15. 58同城2014校园招聘笔试题
  16. IMPERVA-WAF 系统制作和安装-USB
  17. oracle:sql 判断时间段重叠
  18. 云服务器需要防火墙吗?防火墙如何启用设置?
  19. redis 查看的版本
  20. 联想小新一键恢复小孔_联想小新笔记本如何一键恢复出厂设置_联想小新air恢复出厂设置教程...

热门文章

  1. 贷款的五种方法,解决您的购房资金问题
  2. 深度好文:一篇Paper带您读懂HTAP | StoneDB学术分享会第①期
  3. 敏捷开发产品管理系列之六:Product Servant
  4. linux fscanf,linux fscanf
  5. wps字体缺失,问题
  6. golang实现单点登录
  7. python导入可用软件包
  8. Android应用App开发工具
  9. 小程序性能优化之页面预加载方案——让你的小程序运行如飞 进阶篇
  10. PHP实验报告 点餐系统,点餐系统软件工程实验报告.doc