问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

java 计算两个时间之间的差。

提问网友 发布时间:2022-04-21 05:48
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
4个回答
热心网友 回答时间:2022-06-18 07:49
跨日的
import java.util.Date;

public class Test {

public static void main(String[] args) {

String time1 = "23:50";
String time2 = "00:20";

Date date1 = new Date();
Date date2 = new Date();
date1.setDate(1);//假定日期为1号
date1.setHours(23);//第一个小时
date1.setMinutes(50);//第一个分
date2.setDate(date1.getDate()+1);//第二天为2号
date2.setHours(0);//第二个小时
date2.setMinutes(20);//第二个分

long dt1MillSeconds = date1.getTime();
long dt2MillSeconds = date2.getTime();

int julianSeconds = (int) (dt2MillSeconds - dt1MillSeconds)/60/1000;//相差分数
System.out.println(julianSeconds);

}
}
-------------
30
热心网友 回答时间:2022-06-18 07:49
请问time1 = "23:50";time2 = "00:20";中的time2有可能是第N天的时间吗,N>2追问不会,最多是跨一天这种特殊情况。两个时间都是当天那好办,就是夸日不知怎么处理~

追答你说的是时间格式,我理解的是Date类型的数据,也就是说这两个数据你能取到
如果不是Date类型的数据,那么谁也不能知道哪个是哪一天的,time1 = "23:50";time2 = "00:20";这样小时数还可以看出来是隔天的,如果time1 = "00:50";time2 = "23:20";这样呢,我们就没办法知道是隔天还是当天的了,所以绝对不能判断出time2是隔天还是当天
所以我觉得这两个数据是Date类型的
我在程序里是直接定义了两个Date类型的数据:
public static void main(String[] args){
Date date1 = new Date(2011-1900,3-1,17,23,50,00);
Date date2 = new Date(2011-1900,3-1,18,00,20,00);

SimpleDateFormat format= new SimpleDateFormat("HH:mm");

System.out.println(format.format(date1));//输出23 : 50
System.out.println(format.format(date2));//输出00 : 20

SimpleDateFormat format2 = new SimpleDateFormat("yyyy/MM/dd/ HH:mm:ss");
System.out.println(format2.format(date1));//输出2011/03/17/ 23:50:00
System.out.println(format2.format(date2));//输出2011/03/18/ 00:20:00

System.out.println((date2.getTime()-date1.getTime())/60/1000 + "分钟");//date2.getTime()得到的是毫秒,所以要除以60*1000

}
运行结果:
23:50
00:20
2011/03/17/ 23:50:00
2011/03/18/ 00:20:00
30分钟

事实上真正计算时间差的只有 (date2.getTime()-date1.getTime())
其他的是为了写明白,Date类型的数据的格式化形式,咱们看到的23:50或者00:20是数据被格式化为HH:mm格式以后的形式,凡是Date类型的数据,都是可以取得一个毫秒单位的绝对数据,两个数据直接的差就是多少毫秒了,然后看我们是想要小时数,分钟数,还是秒数,再除以相应的值
不知道我说清楚了没有呢

如果你的time1和time2是String类型的,而且你也能够自己知道哪个是第一天哪个是第二天的话,那就提取字符串直接减

热心网友 回答时间:2022-06-18 07:50
package Test5;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TestDate {
public static void main(String[] args) throws ParseException {
String time1 = "22:50";
String time2 = "00:20";
Date firDate = new Date();
Date secDate = new Date(firDate.getTime()+24*60*60*1000);
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd hh:mm");
String firDateStr = f.format(firDate).replaceFirst("\\d{2}:\\d{2}", time1);
String secDateStr = f.format(secDate).replaceFirst("\\d{2}:\\d{2}", time2);
long diff = Math.abs(f.parse(secDateStr).getTime() - f.parse(firDateStr).getTime());
int min = (int)diff/1000/60;
System.out.println("相差的分钟:"+min);
}
}

不考虑如何异常判断的情况
热心网友 回答时间:2022-06-18 07:50
你这两个时间是确定在24小时之内吗?

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

java计算两个时间相差多少小时 java时间差计算 java date 计算时间差 java如何计算工作日之间的时间差 Java计算两个日期时间相差几天,几小时,几分钟等 java 计算两个时间相差多少秒 java中怎么获取时间差? java计算时间差的几种方法 奢侈品有哪些上市公司 公司企业类型有什么? 证券投资选修课期末论文 关于股票的分析报告 公司注销详细流程? 公司注销都需要什么资料 404 Not Found 净资产为负多久退市? 新时代信托重组方是谁 14年华鑫股份半年报什么时侯能出来 小米10来消息呼吸灯怎么设置 word文档中的表格大小调整 word表格查看时如何放大缩小 JAVA新手,计算两个时间差 java中%代表什么意思? 怎么在java中输入一个数,然后输出结果? java 比较时分秒时间差 java中标识符的使用问题 java 获取当前时间与零点的时间差 java时间加减 java中如何在代码中判断时间过了10秒 计算Java程序执行时间的几种方法 通过java如何计算sql数据库中两个时间差 iphone 4 的apple ID 密码忘记了怎么找回? 有些文件上标有什么字什么号的,那是什么意思?那能够反映文件的一些什么内容? 苹果4手机忘记ID密码怎么恢复原厂设置? 苹果4忘记了ID和密码怎么激活? 电脑里带编号的文件是什么? 苹果4需要激活但是id密码忘了怎么办! 电脑带编号文件是什么文件 苹果四忘了ld密码怎么办 哪些红头文件要编号 苹果4的apple id密码忘了怎么办
Top