java HHmm_java8 日期工具类

importorg.apache.commons.lang3.StringUtils;

importjava.time.*;importjava.time.format.DateTimeFormatter;importjava.time.temporal.ChronoUnit;importjava.time.temporal.TemporalAdjusters;importjava.util.*;

public classDateUtil {

static finalDateTimeFormatter dtf= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");static finalDateTimeFormatter dtf_yyyyMMdd= DateTimeFormatter.ofPattern("yyyyMMdd");static finalDateTimeFormatter dtf_yyyyMM= DateTimeFormatter.ofPattern("yyyyMM");static finalDateTimeFormatter dtf_yyyyMM2= DateTimeFormatter.ofPattern("yyyy年MM月");static finalDateTimeFormatter dtf_yyyyMMddHHmmss= DateTimeFormatter.ofPattern("yyyyMMddHHmmss");static finalDateTimeFormatter dtf_yyyyMMddHHmm= DateTimeFormatter.ofPattern("yyyyMMddHHmm");static finalDateTimeFormatter dtf_yyyyMMddHH= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");static finalDateTimeFormatter dtf_yyyyMMddHHss= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");static finalDateTimeFormatter dtf_yyyyMMdd2= DateTimeFormatter.ofPattern("yyyy-MM-dd");public staticString now(){

returndtf.format(LocalDateTime.now());}

public staticString now_yyyyMMdd(){

returndtf_yyyyMMdd.format(LocalDateTime.now());}

public staticString now_yyyy(){

returnLocalDateTime.now().getYear()+"";}

public static intnow_yyyy_int(){

returnLocalDateTime.now().getYear();}

public staticString now_MM(){

intMM = LocalDateTime.now().getMonthValue();if(MM < 10){

return"0"+MM;}

returnMM+"";}

public staticString now_yyyyMM(){

returndtf_yyyyMM.format(LocalDateTime.now());}

public static intnow_MM_int(){

returnLocalDateTime.now().getMonthValue();}

public static intnow_day_int(){

returnLocalDateTime.now().getDayOfMonth();}

public static intnow_day_int(longmodified){

returnInstant.ofEpochSecond(modified/1000).atZone(ZoneId.systemDefault()).toLocalDateTime().getDayOfMonth();}

public staticString fmt(longmodified){

returndtf_yyyyMMdd.format(Instant.ofEpochSecond(modified/1000).atZone(ZoneId.systemDefault()).toLocalDateTime());}

public staticString fmt_yyyyMM(longmodified){

returndtf_yyyyMM.format(Instant.ofEpochSecond(modified/1000).atZone(ZoneId.systemDefault()).toLocalDateTime());}

public staticString fmt_yyyyMM2(longmodified){

returndtf_yyyyMM2.format(Instant.ofEpochSecond(modified/1000).atZone(ZoneId.systemDefault()).toLocalDateTime());}

public staticString fmt_yyyyMMddHHmmss(longmodified){

returndtf_yyyyMMddHHss.format(Instant.ofEpochSecond(modified/1000).atZone(ZoneId.systemDefault()).toLocalDateTime());}

/*** 本年已过天数*@param*@return*/public static longnow_dayCount_int(){

returnChronoUnit.DAYS.between(LocalDate.ofYearDay(LocalDate.now().getYear(),1),LocalDate.now());}

public staticString now_yyyyMMddHH(){

returndtf_yyyyMMddHH.format(LocalDateTime.now());}

public staticString now_yyyyMMdd2(){

returndtf_yyyyMMdd2.format(LocalDateTime.now());}

public staticString now_yyyyMMddHHmmss(){

returndtf_yyyyMMddHHmmss.format(LocalDateTime.now());}

//月的第一天日期public staticLocalDate monthFast(intyear,intmonth){

LocalDate start = LocalDate.of(year,month,1);if(start.getDayOfWeek().getValue() >= 1) {

start = start.minusDays(start.getDayOfWeek().getValue());}

returnstart;}

public staticLocalDate monthLast(intyear,intmonth){

LocalDate start = LocalDate.of(year,month,1);start = start.with(TemporalAdjusters.lastDayOfMonth());if(start.getDayOfWeek().getValue() >= 1) {

start = start.minusDays(start.getDayOfWeek().getValue()-1);}

returnstart;}

public staticLocalDate monthWeekLastDate(intyear,intmonth){

LocalDate start = monthLast(year,month);start = start.plusDays(6);returnstart;}

public staticLocalDate monthWeekFastDate(intyear,intmonth){

LocalDate start = LocalDate.of(year,month,1);if(start.getDayOfWeek().getValue() >= 1) {

start = start.minusDays(start.getDayOfWeek().getValue()-1);}

returnstart;}

public static intmonthWeekDateCount(intyear,intmonth){

LocalDate start = DateUtil.monthWeekFastDate(year,month);LocalDate end = DateUtil.monthWeekLastDate(year,month);returnLong.valueOf(end.toEpochDay()-start.toEpochDay()).intValue()+1;}

public staticList monthWeekDates(intyear, intmonth){

String date = LocalDate.now().toString();returnmonthWeekDates(year,month,date);}

/*** 根据指定日期计算本周周一至周日的日期*@paramdate*@return*/public staticList weekDates(String date){

List weekDates = newLinkedList<>();String[] date2 = date.split("-");intyear2 = Integer.valueOf(date2[0]).intValue();intmonth2 = Integer.valueOf(date2[1]).intValue();intd2 = Integer.valueOf(date2[2]).intValue();LocalDate start = LocalDate.of(year2,month2,d2);// System.out.print("日期:"+date+",周几:"+start.getDayOfWeek().getValue());if(start.getDayOfWeek().getValue() > 1) {

//计算本周,周一的日期start = start.minusDays(start.getDayOfWeek().getValue()).plusDays(1);// System.out.println(",日期:"+start+",周几:"+start.getDayOfWeek().getValue());}

for(inta = 0;a< 7;a++){

weekDates.add(start.plusDays(a).toString());}

returnweekDates;}

/*** 根据指定日期计算本周往后计算指定周数的周一至周日的日期*@paramdate*@return*/public staticList weekDates(String date,intweekCount){

List> weeks = newLinkedList();List weekDates = newLinkedList<>();String[] date2 = date.split("-");intyear2 = Integer.valueOf(date2[0]).intValue();intmonth2 = Integer.valueOf(date2[1]).intValue();intd2 = Integer.valueOf(date2[2]).intValue();LocalDate start = LocalDate.of(year2,month2,d2);// System.out.print("日期:"+date+",周几:"+start.getDayOfWeek().getValue());if(start.getDayOfWeek().getValue() > 1) {

//计算本周,周一的日期start = start.minusDays(start.getDayOfWeek().getValue()).plusDays(1);// System.out.println(",日期:"+start+",周几:"+start.getDayOfWeek().getValue());}

for(inta = 0,alen = weekCount*7;a < alen;a++){

weekDates.add(start.plusDays(a).toString());if(weekDates.size() == 7){

List weekDates2 = newLinkedList<>();weekDates2.addAll(weekDates);weeks.add(weekDates2);weekDates = newLinkedList<>();}

}

returnweeks;}

/*** 返回指定年份月份的每周的周一到周日集合,超出下一周不在范围,超出本月不在范围*@paramyear年份*@parammonth月份*@paramdate日期*@return*/public staticList monthWeekDates(intyear, intmonth,String date){

List> weeks = newLinkedList();List weekDates = newLinkedList<>();LocalDate start = null,end = null;if(StringUtils.isNotEmpty(date)){

String[] date2 = date.split("-");intyear2 = Integer.valueOf(date2[0]).intValue();intmonth2 = Integer.valueOf(date2[1]).intValue();intd2 = Integer.valueOf(date2[2]).intValue();end = LocalDate.of(year2,month2,d2);if(end.getDayOfWeek().getValue() >= 1) {

end = end.plusDays(7- end.getDayOfWeek().getValue()+1);}

if(end.getMonthValue() > month){

end = end.minusDays(7);}

}

// System.out.println("日期:"+date+",下个周一:"+end);for(inti = 0,ilen = monthWeekDateCount(year,month);i< ilen;i++) {

start = DateUtil.monthWeekFastDate(year,month);start = start.plusDays(i);weekDates.add(start.toString());if(weekDates.size() == 7){

List weekDates2 = newLinkedList<>();weekDates2.addAll(weekDates);weeks.add(weekDates2);weekDates = newLinkedList<>();if(start.compareTo(end) >= 0){

break;}

}

}

returnweeks;}

public staticList> desc2(List> list){

List> weeks = newArrayList<>();for(inta = list.size();a>0;a--){

weeks.add(list.get(a-1));}

returnweeks;}

/*** 计算指定日期所属的周一,周天日期*@paramdate*@return*/public staticString[] mondaySundayDate(String date) {

String startDate = date;intc = DateUtil.getWeekNum(date);if(c > 1){

startDate = DateUtil.minusDays2(date,c-1);}

String endDate = DateUtil.plusDays2(startDate,6);return newString[]{startDate,endDate};}

/*** 返回 1-7 中的一天*@return*/public static intgetWeekNum() {

LocalDate currentDate = LocalDate.now();returngetWeekNum(currentDate);}

/*** 返回 1-7 中的一天*@return*/public static intgetWeekNum(String date) {

returngetWeekNum(LocalDate.parse(date,dtf_yyyyMMdd2));}

/*** 返回 1-7 中的一天*@return*/public static intgetWeekNum(LocalDate currentDate) {

String[][] strArray = {

{"MONDAY","1"},{"TUESDAY","2"},{"WEDNESDAY","3"},{"THURSDAY","4"},{"FRIDAY","5"},{"SATURDAY","6"},{"SUNDAY","7"}

};

String k = String.valueOf(currentDate.getDayOfWeek());//获取行数for(inti = 0;i < strArray.length;i++) {

if(k.equals(strArray[i][0])) {

k = strArray[i][1];break;}

}

returnInteger.parseInt(k);}

/*** 减天数*@paramday*@return*/public staticString minusDays2(String date,intday) {

returndtf_yyyyMMdd2.format(LocalDate.parse(date,dtf_yyyyMMdd2).minusDays(day));}

/*** 减天数*@paramday*@return*/public staticString minusDays2(LocalDate date,intday) {

returndtf_yyyyMMdd.format(date.minusDays(day));}

/*** 减天数*@paramday*@return*/public staticString minusDays(intday){

returndtf_yyyyMMdd.format(LocalDateTime.now().minusDays(day));}

/*** 加天数*@paramday*@return*/public staticString plusDays(intday){

returndtf_yyyyMMdd.format(LocalDateTime.now().plusDays(day));}

/*** 加天数*@paramdate*@paramday*@return*/public staticString plusDays2(String date,intday){

returndtf_yyyyMMdd2.format(LocalDate.parse(date,dtf_yyyyMMdd2).plusDays(day));}

/*** 加月数*@parammonth*@return*/public staticString plusMonths(intmonth){

returndtf_yyyyMMdd.format(LocalDateTime.now().plusMonths(month));}

/*** 加月数*@date基础时间 202004011820*@month加几个月*@return*/public staticLong plusMonths(Long date,intmonth){

if(date < 200000000000L|| date > 299999999999L){

return0L;}

returnLong.valueOf(dtf_yyyyMMddHHmm.format(convert_dtfyyyyMMddHHmm(""+date).plusMonths(month)));}

/*** 加小时*@paramhour*@return*/public staticString plusHours(inthour){

returndtf.format(LocalDateTime.now().plusHours(hour));}

/*** 加小时*@date基础时间 202004011820*@month加几小时*@return*/public staticLong plusHours(Long date,inthour){

if(date < 200000000000L|| date > 299999999999L){

return0L;}

returnLong.valueOf(dtf.format(convert_dtfyyyyMMddHHmm(""+date).plusHours(hour)));}

/*** 字符串转指定格式日期*@paramdateyyyy-MM-dd HH:mm:ss 格式的时间*@return*/public staticLocalDateTime convert_dtf(String date){

returnLocalDateTime.parse(date,dtf);}

/*** 字符串转指定格式日期*@paramdateyyyy-MM-dd HH:mm 格式的时间*@return*/public staticLocalDateTime convert_dtfyyyyMMddHHmm(String date){

returnLocalDateTime.parse(date,dtf_yyyyMMddHHmm);}

/*** 字符串转指定格式日期*@paramdateyyyy-MM-dd HH:mm:ss 格式的时间*@return*/public staticLocalDateTime convert_dtfyyyyMMddHHmmss(String date){

returnLocalDateTime.parse(date,dtf_yyyyMMddHHmmss);}

/*** 将日期转换格式返回 yyyyMMddHHmm*@paramdateyyyy-MM-dd HH:mm:ss 格式的时间*@return*/public staticLong get_dtfyyyyMMddHHmm(String date){

returnLong.valueOf( LocalDateTime.parse(date,dtf).format(dtf_yyyyMMddHHmm));}

/*** 获取指定格式的当前日期*@return*/public staticLong get_yyyyMMddHHmmss(String date){

returnLong.valueOf( LocalDateTime.parse(date,dtf).format(dtf_yyyyMMddHHmmss));}

/*** 获取指定格式的当前日期*@return*/public staticLong get_yyyyMMddHHmmss(){

returnLong.valueOf(dtf_yyyyMMddHHmmss.format(LocalDateTime.now()));}

/*** 获取指定格式的当前日期*@return*/public staticLong get_yyyyMMddHHmm(){

returnLong.valueOf(dtf_yyyyMMddHHmm.format(LocalDateTime.now()));}

/*** 日期格式化为*@paramdateyyyy-MM-dd HH:mm:ss*@return*/public staticString format_dtf(LocalDateTime date){

returndtf_yyyyMMddHHmmss.format(date);}

/*** 日期格式化为*@paramtimestamp*@return*/public staticString format_dtf_long(Long timestamp){

Instant instant = Instant.ofEpochMilli(timestamp);ZoneId zone = ZoneId.systemDefault();returndtf_yyyyMMddHHmmss.format(LocalDateTime.ofInstant(instant,zone));}

/*** 日期格式化为*@paramtimestamp*@return*/public staticString format_dtf(Long timestamp){

Instant instant = Instant.ofEpochMilli(timestamp);ZoneId zone = ZoneId.systemDefault();returndtf.format(LocalDateTime.ofInstant(instant,zone));}

/*** 日期格式化为*@paramdateyyyyMMddHHmm*@return*/public staticString format_yyyyMMddHHmm(LocalDateTime date){

returndtf_yyyyMMddHHmm.format(date);}

/*** 日期格式化为 yyyyMMddHHmm*@paramdateTime*@return*/public staticLong format_yyyyMMddHHmm_long(LocalDateTime dateTime){

returnLong.valueOf(format_yyyyMMddHHmm(dateTime));}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值