java 时间计算 格式化的相关记录(后续)

本文详细介绍了如何使用Java进行日期解析和时间差计算,包括字符串到日期格式的转换、时间差计算及时间范围内的判断。通过实例代码展示了如何实现这些功能,适合Java开发人员学习。
1.
String start="8:00:00";
SimpleDateFormat df=new SimpleDateFormat("HH:mm:ss");
System.out.println(df.parse(start));
得到的是1970年的: Thu Jan 01 08:00:00 CST 1970



2.
计算相同格式的两个时间的时间差 :如07:38-00:41,结果以XX小时XX分钟形式输出
private double countOverTime(String endtime,String starttime) throws ParseException{
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss"); 
Date end=df.parse(endtime);
Date start=df.parse(starttime);
long result=(long)(end.getTime()-start.getTime())/1000; 
long hour=result%(24*3600)/3600;
long min=result%3600/60;
return hour+"小时"+min+"分钟";
}

3.
如果给你一个时间如orderMinTime="10:15",orderMaxTime="23:30"分别计算和当前时间的时间差,
(要注意不要使用1.的方法格式化,原因如1.)
正确做法如下:
String[] mintimes=orderMinTime.split(":");
String[] maxtimes=orderMaxTime.split(":");
Calendar ca=Calendar.getInstance();
ca.set(Calendar.HOUR_OF_DAY, Integer.parseInt(mintimes[0]));
ca.set(Calendar.MINUTE, Integer.parseInt(mintimes[1]));
long min=ca.getTime().getTime();
ca.set(Calendar.HOUR_OF_DAY, Integer.parseInt(maxtimes[0]));
ca.set(Calendar.MINUTE, Integer.parseInt(maxtimes[1]));
long max=ca.getTime().getTime();
long bookTime=new Date().getTime();//预定时间定义为当前时间
if(bookTime>=min&&bookTime<=max) bookStatus="1";//可预订
else bookStatus="0";//不可预订


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值