这是我参与8月更文挑战的第27天,活动详情查看:8月更文挑战
相关文章
Java工具类汇总:Java工具类
- 本篇文章会随着平时的工作一直更新,作为一个记录使用。
- 在平时工作中,会把很多业务场景相似的关于时间的方法,统一抽成工具类来使用。
- 方便后期使用方便。
- 希望这些工具类对你有帮助!
- 点个关注哦~
时间工具类集合
①、获取一周前的时间
-
业务场景:
- 需要统计当前时间开始回推一周内的数据列表。
-
public static String sevenDatysAgo(){ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); //过去七天 c.setTime(new Date()); c.add(Calendar.DATE, - 7); Date d = c.getTime(); String day = format.format(d); day = day+" 00:00:00"; return day; }
-
演示效果
-
public static void main(String[] args) { //调这个方法就是返回当前时间的一周前的零点零分零秒 System.out.println(sevenDatysAgo()); }
②、获取几月前的月份
-
业务场景
- 一般涉及到跨年的统计,可以选择使用该工具类。
- 比如统计当前开始回推三个月的数据分析。
-
public static String[] getDateBeforeMonth(String dateKey, Integer length){ String[] arrData = new String[2]; try { //dateKey是传进来的日期,length是所需要前推的月份 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM"); Calendar c = Calendar.getInstance(); Date nowMonth = format.parse(dateKey); c.setTime(nowMonth); c.add(Calendar.MONTH, -length); Date m3 = c.getTime(); String mon3 = format.format(m3); System.out.println("过去"+length+"个月:"+mon3); arrData[0] = mon3; arrData[1] = dateKey; return arrData; } catch (ParseException e) { e.printStackTrace(); } return arrData; }
-
演示效果
-
public static void main(String[] args) { getDateBeforeMonth("2021-08",6); }
③、小时转分钟
-
业务场景
- 统计页面使用,方便查看。
-
public static int hoursTOminute(String date) { String[] dataArr = date.split("小时"); int Hminute = Integer.parseInt(dataArr[0]) * 60; int Mminute = Integer.parseInt(dataArr[1].replace("分","")); int hoursToMinute = Hminute + Mminute; return hoursToMinute; }
-
演示效果
-
public static void main(String[] args) { String str = "3小时24分"; System.out.println(str+":"+hoursTOminute(str)); }
④、得到N小时候的日期
-
业务场景
- 一般是在进行数据跑批的时候使用
- 比如,造假数据让页面动起来,圈定时间范围!
-
/** * 得到n小时之后的日期 */ public static String getAfterHourCycleByHour(Date date, String days) { int daysInt = Integer.parseInt(days); Calendar canlendar = Calendar.getInstance(); canlendar.setTime(date); canlendar.add(Calendar.HOUR, daysInt); SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateStr = sdfd.format(canlendar.getTime()); return dateStr; }
-
演示效果
-
public class test { public static void main(String[] args) { Date date = new Date(); String endTime = DateUtils.getAfterHourCycleByHour(date, "2"); System.out.println(endTime); } }
⑤、根据出生日期计算人的年龄
-
业务场景
- 这个就是根据别人输入的出生日期计算人的年龄,场景很简单。
-
/** * 根据出生日期计算年龄 * * @return 未来日期返回0 */ public static int getAge(Date birthDay) throws Exception { Calendar cal = Calendar.getInstance(); if (cal.before(birthDay)) { return 0; } int yearNow = cal.get(Calendar.YEAR); int monthNow = cal.get(Calendar.MONTH); int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH); cal.setTime(birthDay); int yearBirth = cal.get(Calendar.YEAR); int monthBirth = cal.get(Calendar.MONTH); int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH); int age = yearNow - yearBirth; if (monthNow <= monthBirth) { if (monthNow == monthBirth) { if (dayOfMonthNow < dayOfMonthBirth) { age--; } } else { age--; } } return age; }
-
演示效果
-
public class test { public static void main(String[] args) throws Exception{ DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date birthDay = df.parse("1996-08-27"); System.out.println(DateUtils.getAge(birthDay)); } }
⑥、获取本周的开始时间
-
业务场景
- 统计本周的数据进行分析
-
public static Date getBeginDayOfWeek() { Date date = new Date(); Calendar cal = Calendar.getInstance(); cal.setTime(date); int dayofweek = cal.get(Calendar.DAY_OF_WEEK); if (dayofweek == 1) { dayofweek += 7; } cal.add(Calendar.DATE, 2 - dayofweek); return getDayStartTime(cal.getTime()); }
-
演示效果
-
public class test { public static void main(String[] args) throws Exception{ System.out.println(DateUtils.getBeginDayOfWeek()); } }
未完待续~
**路漫漫其修远兮,吾必将上下求索~ **
如果你认为i博主写的不错!写作不易,请点赞、关注、评论给博主一个鼓励吧~hahah
今天的文章时间工具类集合 | Java工具类整理(一)分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/14602.html