1.获取当前时间
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);//年
int month = cal.get(Calendar.MONTH) + 1; // 0代表1月,11代表12月
int day = cal.get(Calendar.DAY_OF_MONTH);//日
int hour = cal.get(Calendar.HOUR_OF_DAY);//时
int minute = cal.get(Calendar.MINUTE);//分
//输出当前时间
System.out.println(year + "-" + month + "-" + day + "-" + hour + "-" + minute);
2.获取几个小时前的时间
Calendar cal = Calendar.getInstance();
//设置日期为15小时之前
cal.set(Calendar.HOUR_OF_DAY, (cal.get(Calendar.HOUR_OF_DAY) - 15));
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1; // 0代表1月,11代表12月
int day = cal.get(Calendar.DAY_OF_MONTH);
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
//自动进行日期转换,输出15小时之前的具体时间
System.out.println(year + "-" + month + "-" + day + "-" + hour + "-" + minute);
3.日期格式转换
Calendar cal = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd-HH");
//输出年-月-日-时格式时间
System.out.println(df.format(cal.getTime()));
//和上一句效果相同
System.out.println(df.format(new Date()));
SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd--HH:mm:ss");
//输出年-月-日--时:分:秒格式时间
System.out.println(df2.format(cal.getTime()));
//和上一句效果相同
System.out.println(df2.format(new Date()));
另一种格式化日期方法
System.out.println(DateFormatUtils.format(new Date(), "yyyy-MM-dd"));
4.获取当天起始时间
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//起始日期
Date date = Date.from(LocalDate.parse(df.format(new Date()), dtf).atStartOfDay(ZoneId.systemDefault()).toInstant());
System.out.println(date);//Mon Dec 16 00:00:00 CST 2019
System.out.println(df.format(date));//2019-12-16
另一种方式
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//获取当前时间戳(秒)
long epochSecond = LocalDate.parse(df.format(new Date()), dtf)
.atStartOfDay(ZoneId.systemDefault())
.toInstant()
.getEpochSecond();
System.out.println(new Date());//Mon Dec 16 15:03:34 CST 2019
//将时间戳转为Date格式
Date date = new Date(epochSecond * 1000);
System.out.println(date);//Mon Dec 16 00:00:00 CST 2019
5.获取当前时间戳
System.out.println(new Date().getTime());
System.out.println(System.currentTimeMillis());