java 获取两个时间差_java如何获取两个日期的时间差
本文实例为大家分享了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如何获取两个日期的时间差相关推荐
- java中取系统时间_JAVA中获取当前系统时间(示例代码)
一. 获取当前系统时间和日期并格式化输出: import java.util.Date;import java.text.SimpleDateFormat; public class NowStrin ...
- java获取数据库当前时间_java中获取系统的当前时间
转自:http://www.cnblogs.com/Matrix54/archive/2012/05/01/2478158.html 一. 获取当前系统时间和日期并格式化输出: import java ...
- java计算时间差_Java中计算两个日期的时间差
这篇文章将使用两个例子计算两个日期的时间差. 1.使用Java SDK. 2.使用Joda库. 1.使用Java SDK 计算两个Date之间的时间差,基本思路为把Date转换为ms(微秒),然后计算 ...
- java array 元素的位置_java中的两种排序工具Arrays和Collections的使用
java中的排序工具主要是有两个Arrays和Collections.我们一个一个来讲解. 本来写好了每一种方法的测试代码,后来又给删了,因为我觉得如果想要去了解的话,可以直接查看这些常用的即可.因为 ...
- java 取两个时间间隔_Java:获取时间间隔
我正在进行一个以hh:mm捕获间隔时间的项目. 我有2个名为btnTimeOut&的按钮. btnTime在单击时捕获系统时间. 要求是获得btnTimeOut和amp;之间的间隔. btnT ...
- java获取object属性值_java反射获取一个object属性值代码解析
有些时候你明明知道这个object里面是什么,但是因为种种原因,你不能将它转化成一个对象,只是想单纯地提取出这个object里的一些东西,这个时候就需要用反射了. 假如你这个类是这样的: privat ...
- java 文件去除扩展名_Java操作——获取文件扩展名,去掉文件扩展名
昨天收邮件,得知要参加一个产品部的会议,猜想,也许是因为我做的这个产品demo问题.于是昨天忙活到凌晨3点半,结果早上一来才知道又被调戏了.发邮件的MM把邮件误发给我了.悲催啊有木有,困啊有木有!自己 ...
- java 获取所有实现类_Java动态获取实现某个接口下所有的实现类对象集合
Java动态获取实现某个接口下所有的实现类对象集合 最近有个需求,我需要获取所有同一类型的定时任务的对象,并自动执行. 我想的方案是:直接获取某个接口下面所有的实现类的对象集合,方便以后只需要 实现这 ...
- java 反射获取父类的字段_java反射获取父类和子类字段值、赋值
这里将告诉您java反射获取父类和子类字段值.赋值,具体操作过程:java反射获取字段值.赋值 import org.springframework.util.ReflectionUtils; imp ...
最新文章
- 码神之路博客项目构建记录
- 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波10 - 直方图处理 - 局部直方图处理
- Android中的Handler的具体用法
- 如何帮用户管好云账本?阿里云数据库助力收钱吧 | 甲子光年
- mysql集群搭建(使用docker 一主一从)
- springboot细节挖掘(jar和war打包)
- 解码(三):AVFrame格式解析和空间处理函数
- 01.26 小组功能初步总结
- visual studio(vs)中项目解决方案的目录组织安排
- 树莓派(RespberryPi)安装手记
- ArcGIS知乎干货教程大集合
- Oracle数据库练习题(3)
- php亲戚称谓计算源码,亲戚称呼(亲戚关系计算器在线)
- 安全好用的快充头,iPhone 13的好搭档,RAVPOWER 20W充电器上手
- 58同城2014校园招聘笔试题
- IMPERVA-WAF 系统制作和安装-USB
- oracle:sql 判断时间段重叠
- 云服务器需要防火墙吗?防火墙如何启用设置?
- redis 查看的版本
- 联想小新一键恢复小孔_联想小新笔记本如何一键恢复出厂设置_联想小新air恢复出厂设置教程...