欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

String类型的时间(日期时间)加上固定小时后计算结果

程序员文章站 2022-03-11 22:29:42
...

传入String类型的时间和String 类型的小时,求计算以后的时间:

 private String computeDateTime(String dateTime, String hours) {
        String forecastTime = new String();
        if (StringUtils.isNotEmpty(dateTime)) {
            Calendar calendar = Calendar.getInstance();
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = null;
            try {
                date = simpleDateFormat.parse(dateTime);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            calendar.setTime(date);
            calendar.add(Calendar.HOUR_OF_DAY, Integer.parseInt(hours));
            forecastTime = simpleDateFormat.format(calendar.getTime());
        }
        return forecastTime;
    }

补充:
(1)Java 比较两个String类型的时间大小

private viod dateCompareTo(String dateTime, String dateTime1) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date1 = null;
        Date date = null;
        String flag;
        try {
            date1 = simpleDateFormat.parse(dateTime1);
            date = simpleDateFormat.parse(dateTime);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        Long result = date.getTime() - date1.getTime();
    }

只要比较result和0的大小就行。
(2)求两个String类型的时间之间的时间间隔(精确到小时)

 private Double computeDispAndSignTimeInterval(String realDateTime, String forecastDateTime) {
        DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date realDate = null;
        Date forecastDate = null;
        try {
            realDate = simpleDateFormat.parse(realDateTime);
            forecastDate = simpleDateFormat.parse(forecastDateTime);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        //时间间隔毫秒数
        long time = realDate.getTime() - forecastDate.getTime();
        //转换成小时
        Double diffHours = Double.valueOf((time % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
        return diffHours;
    }

相关标签: 小记