工作中一个关于时间的小过程,,开始时间+持续时间=结束时间
String str = query.getDuration(); int h = Integer.parseInt(str.substring(0, str.indexOf("小时"))); int m = Integer.parseInt(str.substring(str.indexOf("小时")+2, str.indexOf("分钟"))); int s = Integer.parseInt(str.substring(str.indexOf("分钟")+2, str.indexOf("秒"))); int durts = h*60*60+m*60+s;//获取故障持续时间秒数 SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date d = sdf.parse(query.getOccurDate()); int odts = Long.valueOf(d.getTime()/1000).intValue();//获取故障开始时间秒数 Long ets = (long) (odts+ durts);//获取故障结束时间秒数 String eDate = sdf.format(new Date(ets*1000)); query.setBeginTime(query.getOccurDate());//设置故障开始时间 query.setEndTime(eDate);//设置故障结束时间
关于时间转换问题,注意以下几点:
1、格式化时间 (格式——》 2016-05-14 13:46:21)
SimpleDateFormat sdf = new SimpleDateFormate("yyyy-MM-dd HH:mm:ss");
String time = sdf.format(new Date());//注意,这里 fromat的是一个Date对象
2、将String转成Date对象
Date date = sdf.parse("2016-05-14 13:46:21");
3、将时间转换成秒
Long seconds = date.getTime()/1000;//注意,一切转换后的时间都是以毫秒为单位,所以要除以1000
4、计算时间差
计算时间差,最安全的办法就是将时间转成秒,然后进行数值计算。