201223:时间差转小时-字段相同对象赋值方法

2020-12-23  本文已影响0人  弹钢琴的崽崽

一. 时间差转小时

需求:09:50 到 22:30经历了几个小时。

例:09:30-10:00经历了1.5小时

  1. 需要把时间格式定义为hh:mm,将两个时间转为Date类型,调用getTime()方法相减,
  2. 得到的结果转为double类型,再result/(10006060),得到一个小数四舍五入保留一位小数
  3. String.format("%.1f",hours);
  4. 如此所得到的结果就是小时数。long/整数=得到的是 整数,不会有小数

代码如下

try {
    DateFormat df = new SimpleDateFormat("HH:mm");
    Date end = df.parse(dynamiDetail.getLpanEndTime());
    Date start = df.parse(dynamiDetail.getPlanStartTime());
    Double planTime = Double.parseDouble(String.valueOf(end.getTime()-start.getTime()));
    double hours = planTime/(1000* 60 * 60);
    String result = String.format("%.1f",hours);
    dynamiDetail.setPlanTime(result);
} catch (ParseException e) {
    e.printStackTrace();
}

二. 字段相同对象赋值

import com.dragonsoft.slxf.config.GeneralConvertor;
@Service
@Transactional
public class TSlxfAviationDynamiService extends BaseService<AviationDynami, String> implements ITSlxfAviationDynamiService {
    @Autowired
    private GeneralConvertor generalConvertor;
    /**
     * 分页查询飞行计划动态明细列表
     * @param searchable
     * @return
     */
    @Override
    public Page<TSlxfAviationDynami> searchDynamic(Searchable searchable) {
        Page<AviationDynami> paging = slxfAviationDynamiRepository.paging(searchable);
        List<AviationDynami> content = paging.getContent();
        List<TSlxfAviationDynami> convertor = generalConvertor.convertor(content, TSlxfAviationDynami.class);
        return new PageImpl<>(convertor, paging.getPageable(), paging.getTotalElements());
    }
}

generalConvertor.convertor(原来的对象,要转换的对象.class)

返回结果就是要转换的对象类型比BeanUtils.copyProperties(v1,v2)高效;

上一篇 下一篇

猜你喜欢

热点阅读