前言
使用日期函数,获取当月多少天,当前第几月,以及各种与时间有关系的操作;
这篇文章草稿是在19-5-30写好的,一直想完善,写个一网打尽的,奈何自己懒,一直没写完,时隔一年,写完吧
字符串互转时间
Date d=new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//时间转字符串 2020-07-17 11:30:49
String ds=df.format(d);
System.out.println(ds);
try {
//字符串转时间 Fri Jul 17 11:26:22 CST 2020
Date sd=df.parse("2020-07-17 11:26:22");
System.out.println(sd);
} catch (ParseException e) {
e.printStackTrace();
}
获取当月多少天
输入日期获取当月多少天
String date="2019-05";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM");
Calendar calendar =Calendar.getInstance();
try {
calendar.setTime(dateFormat.parse(date));
}catch (Exception e){
throw new RuntimeException(e);
}
calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH));
calendar.set(Calendar.DATE, 1);
calendar.roll(Calendar.DATE,-1);
int time1 =calendar.get(Calendar.DATE);
System.out.println(time1);
两个日期比较大小
String old="2020-07-12 19:30:48.0";
String now="2020-07-17 11:30:48.0";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date sd1=df.parse(old);
Date sd2=df.parse(now);
//sd1时间在sd2时间之前
System.out.println(sd1.before(sd2));
//sd1时间在sd2时间之后 返回布尔值
System.out.println(sd1.after(sd2));
} catch (ParseException e) {
e.printStackTrace();
}
获取某天的N天/月/年前
Calendar的方法很多,星期,小时,。。根据需求调用方法即可
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();//获取当前时间
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DATE, -15);//当前时间减去15天,即15天前的时间
String format = dateFormat.format(calendar.getTime());
System.out.println(format);
System.out.println(calendar.getTime());
calendar.add(Calendar.YEAR, -1);//当前时间减去一年,即一年前的时间
String format2 = dateFormat.format(calendar.getTime());
System.out.println(format2);
System.out.println(calendar.getTime());
calendar.add(Calendar.MONTH, -1);//当前时间前去一个月,即一个月前的时间
String format3 = dateFormat.format(calendar.getTime());
System.out.println(format3);
System.out.println(calendar.getTime());
calendar.add(Calendar.MONTH, 1);//当前时间加一个月,即一个月后的时间
String format4 = dateFormat.format(calendar.getTime());
System.out.println(format4);
System.out.println(calendar.getTime());