java Dateutil 操作类
JAVA 操作
2023-09-11 14:21:22 时间
方法内容:
1 yyyy-MM-dd 格式化时间
2 yyyy-MM-dd HH:mm:ss 格式化时间
3 获得年份
4 获得月份
5 获得日期
6 当前时间的加减操作
7 两个时间的差值操作
package com.tenyears.common.utils; import org.apache.commons.lang3.StringUtils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.ZoneId; import java.time.temporal.ChronoUnit; import java.util.Calendar; import java.util.Date; public class DateUtil { public static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd"); public static Date getCurDate() { Date currDate = new Date(); return currDate; } public static String format(Date date) { if (date != null) { return format.format(date); } return null; } public static String format2(Date date) { if (date != null) { return format2.format(date); } return null; } public static Date parse2(String dateStr) { if (StringUtils.isNoneBlank(dateStr)) try { return format2.parse(dateStr); } catch (ParseException e) { LogerUtil.error(LogerUtil.getPrintStr(e)); } return null; } public static Date parse(String dateStr) { if (StringUtils.isNoneBlank(dateStr)) try { return format.parse(dateStr); } catch (ParseException e) { LogerUtil.error(LogerUtil.getPrintStr(e)); } return null; } /** * * @param date * @return date对应的年 */ public static int getYear(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.YEAR); } public static int getNowYear() { Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); return calendar.get(Calendar.YEAR); } /** * * @param date * @return date对应的月 */ public static int getMonth(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.MONTH) + 1; } public static int getNowMonth() { Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); return calendar.get(Calendar.MONTH) + 1; } /** * @param date * @return 对应的天 */ public static int getDay(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.DAY_OF_MONTH); } public static int getNowDay() { Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); return calendar.get(Calendar.DAY_OF_MONTH); } /** * 时间加减 * @param date 时间 * @param calendarType Calendar.Year / Calendar.Month..... * @param value value * @return */ public static Date add(Date date,int calendarType,int value) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(calendarType, value);//当前时间减去一年,即一年前的时间 return calendar.getTime();//获取一年前的时间,或者一个月前的时间 } /** * 得到两个时间的差值 * @param d1 * @param d2 * @param chronoUnit ChronoUnit.Year / ChronoUnit.Month.... * @return */ public static long subDate(Date d1,Date d2,ChronoUnit chronoUnit) { LocalDate afterDate = d1.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); LocalDate beforeDate = d2.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); long diff = chronoUnit.between(beforeDate, afterDate); return diff; } /** * 得到两个时间相减的年数 * @param d1 * @param d2 * @return */ public static long subYears(Date d1,Date d2) { LocalDate afterDate = d1.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); LocalDate beforeDate = d2.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); long diff = ChronoUnit.YEARS.between(beforeDate, afterDate); return diff; } /** * 得到两个时间相减的月数 * @param d1 * @param d2 * @return */ public static long subMonths(Date d1,Date d2) { LocalDate afterDate = d1.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); LocalDate beforeDate = d2.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); long diff = ChronoUnit.MONTHS.between(beforeDate, afterDate); return diff; } /** * 得到两个时间相减的天数 * @param d1 * @param d2 * @return */ public static long subDays(Date d1,Date d2) { LocalDate afterDate = d1.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); LocalDate beforeDate = d2.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); long diff = ChronoUnit.DAYS.between(beforeDate, afterDate); return diff; } /** * 得到两个时间相减的小时数 * @param d1 * @param d2 * @return */ public static long subHours(Date d1,Date d2) { LocalDate afterDate = d1.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); LocalDate beforeDate = d2.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); long diff = ChronoUnit.HOURS.between(beforeDate, afterDate); return diff; } /** * 得到两个时间相减的分钟数 * @param d1 * @param d2 * @return */ public static long subMinutes(Date d1,Date d2) { LocalDate afterDate = d1.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); LocalDate beforeDate = d2.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); long diff = ChronoUnit.MINUTES.between(beforeDate, afterDate); return diff; } /** * 得到两个时间相减的秒钟数 * @param d1 * @param d2 * @return */ public static long subSeconds(Date d1,Date d2) { LocalDate afterDate = d1.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); LocalDate beforeDate = d2.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); long diff = ChronoUnit.SECONDS.between(beforeDate, afterDate); return diff; } }
相关文章
- Java操作PDF之iText超入门
- java设计模式之-建造者模式
- 【JAVA】JAVA操作数据的增、删、改、查(带参和不带参两种:示例+代码+注释)
- 关于java中redis操作直接使用jedis和使用springboot封装的RedisTemplate效率对比和主要区别
- java getColumnName(i)和getColumnLabel(i)的区别
- Java Reflection(十):数组
- [转]java List和数组相互转换方法
- 实用操作--JAVA项目从8升级至17的步骤及填坑记录
- 【Java】sleep和wait的区别
- 【Java】+文件操作 hutool
- 【Java】+模拟浏览器操作
- Java-struts2的问题 java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
- java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=delete(int)],
- C语言与java的区别
- 《Java遗传算法编程》—— 1.12 参考文献
- Java泛型:泛型类、泛型接口和泛型方法
- Java中中文拼音的排序问题
- Java文件操作大全
- 【华为OD机试真题 java、python】垃圾短信识别、垃圾信息拦截【2022 Q4 100分】
- Java_类似java.lang.VerifyError: Expecting a stackmap frame at branch target 22 in method的解决方法
- Java JDBC批处理插入数据操作
- JAVA实训-连连看(二)总结
- 知识点整理之Java的Cookie操作
- JAVA数组的定义及用法
- Java学习路线:day14 面向对象(下)
- JAVA继承综合小练习