格式化时间转换

工作中一个关于时间的小过程,,开始时间+持续时间=结束时间

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、计算时间差

计算时间差,最安全的办法就是将时间转成秒,然后进行数值计算。

原文地址:https://www.cnblogs.com/cfb513142804/p/5492442.html