java中如何实现在当前时间上加上4.5个小时返回一个Date类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何实现在当前时间上加上4.5个小时返回一个Date类型相关的知识,希望对你有一定的参考价值。

你好,可以使用Calendar类。方法如下:
Date date = new Date();
Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(Calendar.MINUTE, 270);
return c.getTime();
参考技术A cal.add(Calendar.MINUTE,4.5*60);本回答被提问者采纳

Java — CommonUtil

一些Java的公用方法:

1:获取当前时间
2:判断当前时间是否在时间date2之前
3:比较时间大小
4:获取某个时间的前n个小时
5:返回某个字符串时间的Calendar对象
6:判断两个时间段是否有重叠
7:获取前后n周的周x
8:获取过去12个月份yyyy-MM

 

1.获取当前时间

    public static String getToday() {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        String today = formatter.format(date);
        return today;
    }

 

2.判断当前时间是否在时间date2之前

     /**
      * 时间格式 2018-4-21 16:16:34
      * @param date2
      * @return
      */
    public static boolean isDateBefore(String date2) {
        try {
            Date date1 = new Date();
            DateFormat df = DateFormat.getDateTimeInstance();
            return date1.before(df.parse(date2));
        } catch (ParseException e) {
            return false;
        }
    }

 

3.比较时间大小

    // 比较时间大小  date1<date2 true
     public static boolean compareMinDate(String date1, String date2)
             throws ParseException {
         Date d1 = convertToCalendar(date1).getTime();
         Date d2 = convertToCalendar(date2).getTime();
         return d1.before(d2);
     }

 

 4.获取某个时间的前n个小时

    // 获取某个时间的前n小时
    public static String getBeforeNHour(int n, String nowTime, String pattern) throws Exception {
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        Date date = null;
        date = sdf.parse(nowTime);
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.add(Calendar.HOUR, n);
        return sdf.format(cal.getTime());
    }

 

5.返回某个字符串时间的Calendar对象

     // 返回某个字符串时间的Calendar对象
     public static Calendar convertToCalendar(String date) throws ParseException {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         Date d = sdf.parse(date);
         GregorianCalendar calendar = new GregorianCalendar();
         calendar.setTime(d);
         return calendar;
     }

 

6.判断两个时间段是否有重叠

2个时间段:
begin2, end2
beginTime, endTime

公式:
begin2 <= endTime and end2 >= beginTime


if (compareHours(begin2, endTime)>0 && compareHours(beginTime, end2)>0) {
    errorMsg = "重叠了";
    break;
}

 

7.获取前后n周的周x

    private String getLastMonday() {
        Calendar cal = Calendar.getInstance();
        // n为推迟的周数,1本周,-1向前推迟一周,2下周,依次类推
        int n = -1;
        String monday;
        cal.add(Calendar.DATE, n * 7);
        // 想周几,这里就传几Calendar.MONDAY(TUESDAY...)
        cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
        monday = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
        return monday;
    }

 

8.获取过去12个月份yyyy-MM

    private String[] getLast12Months(){  
    DecimalFormat df = new DecimalFormat("00");
        String[] last12Months = new String[12];  
        Calendar cal = Calendar.getInstance();  
        cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)+1); //先+1,才能把本月进去
        for(int i=0; i<12; i++){  
            cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)-1); //逐次往前推1个月  
            last12Months[i] = cal.get(Calendar.YEAR)+ "-" + df.format(cal.get(Calendar.MONTH)+1);  
        }  
        return last12Months;  
    }

 







以上是关于java中如何实现在当前时间上加上4.5个小时返回一个Date类型的主要内容,如果未能解决你的问题,请参考以下文章

java中,如何获取23小时前的时间 返回值需要date型。

PHP中如何给日期加上一个月 加一周

JAVA如何获取当前小时的毫秒数呢?是当前小时,比如2014-03-04 下午16:00:00的毫秒数

jQuery怎么实现发布时间自动计算出距离当前时间多少多久

Java取当前时间

如何在 jQuery Mobile 1.4.5 中获取当前页面 URL?