Calendar代替Date常用方法小记

时间:2022-12-08 06:46:20

业务逻辑中遇到日期的相关操作,整理一下小做总结

日期操作离不开 java.util.Calendar 和 java.util.Date ,实体类中日期字段设计也可能用到java.sql.Date。但目前使用中,Calendar为主,Date辅助,而且Date中的许多方法已过时,Calendar可99%替代,1%也是类型转换时的临时需要。这里仅结合实际使用简单汇总如下:

     // 获取当前各自日期实例
Calendar calendar = Calendar.getInstance();
Date date = new Date(); // 相互转换
Date temp = calendar.getTime();
calendar.setTime(date); // 设置时分秒,Calendar完全替换Date
calendar.set(Calendar.HOUR_OF_DAY,9);
calendar.set(Calendar.MINUTE,30);
calendar.set(Calendar.SECOND,0); // 时间比较,Calendar完全替换Date+1
Calendar calendar1 = Calendar.getInstance();
// before/after参数可为Calendar或Date
Boolean tem = calendar.before(calendar);
Boolean tem1 = calendar.after(calendar);
Boolean tem2 = calendar.after(date); // 日期格式转换,commons-lang
// 日期转字符串 Date--String
String dateStr = DateFormatUtils.format(date,"yyyy-MM-dd HH:MM:SS");
// 字符串转日期 String--Date
String[] pattern = new String[]{"yyyy-MM","yyyyMM","yyyy/MM",
"yyyyMMdd","yyyy-MM-dd","yyyy/MM/dd",
"yyyyMMddHHmmss",
"yyyy-MM-dd HH:mm:ss",
"yyyy/MM/dd HH:mm:ss"};
String test = "2018-5-22";
Date date1 = DateUtils.parseDate(test, pattern);

以上为当前业务中所用到的及常用的一些基本方法,后续用到再补充