1、近期在项目中经常使用到日期加减N天的操作,于是通过Calendar来处理的这个问题。
Date date = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.DAY_OF_MONTH, 1);
System.out.println(cal.getTime());
cal.add(Calendar.DAY_OF_MONTH, 1);
System.out.println(cal.getTime());
//案例:http://m.docexcel.net/show/24_70354.html#title1
2、Calendar实测
Calendar rightNow = Calendar.getInstance();
int year = rightNow.get(Calendar.YEAR);
int month = rightNow.get(Calendar.MONTH);
int date = rightNow.get(Calendar.DATE);
int hour=rightNow.get(Calendar.HOUR_OF_DAY);
//获取上午下午
int moa=rightNow.get(Calendar.AM_PM);
if(moa==1){
System.out.println("当前是下午");
}else{
System.out.println("当前是上午");
}
System.out.println(year + "年" + (month + 1) + "月" + date + "日"+hour+"时");
//add方法
rightNow.add(Calendar.YEAR,5);
rightNow.add(Calendar.DATE, -10);
int year1 = rightNow.get(Calendar.YEAR);
int date1 = rightNow.get(Calendar.DATE);
System.out.println(year1 + "年" + (month + 1) + "月" + date1 + "日"+hour+"时");
3、SimpleDateFormat 的线性安全问题
程序员必备:Java日期处理的十个坑
https://mp.weixin.qq.com/s/-K3nZqQYQESJysfLBbxdlA
4、LocalDateTime、LocalDate、Date、String相互转化
//LocalDate转String
String dateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
System.out.println("当前字符串日期:" + dateStr);
//String转LocalDate
LocalDate date = LocalDate.parse(dateStr);
System.out.println("日期对象:" + date);
//LocalDateTime转String
String dateTimeStr = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println("当前字符串日期时间:" + dateTimeStr);
//String转LocalDateTime
LocalDateTime dateTime = LocalDateTime.parse(dateTimeStr, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println("当前日期时间对象:" + dateTime);
//除了上述与String类型的转化,与Date类型之间的转化也是很常见
LocalDateTime、LocalDate、Date、String相互转化大全及其注意事项
https://mp.weixin.qq.com/s/QFRc9P1ABF-FqV6TgT5cgA
死磕18个Java8日期处理,工作必用
https://mp.weixin.qq.com/s/6hqO9joqGk_y8Z5tZkBDPg
为什么建议使用你 LocalDateTime ,而不是 Date?
https://mp.weixin.qq.com/s/eFvh3wc58N4m-RQn9lvRLQ