7 changed files with 226 additions and 8 deletions
@ -0,0 +1,91 @@ |
|||
package com.epmet.util; |
|||
|
|||
import com.epmet.commons.tools.utils.DateUtils; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Calendar; |
|||
import java.util.Date; |
|||
|
|||
public class DimIdGenerator { |
|||
|
|||
/** |
|||
* 生成日期维度ID |
|||
* @param targetDate |
|||
* @return |
|||
*/ |
|||
public static String getDateDimId(Date targetDate) { |
|||
return DateUtils.format(targetDate, DateUtils.DATE_PATTERN_YYYYMMDD); |
|||
} |
|||
|
|||
/** |
|||
* 获取月维度ID |
|||
* @param date |
|||
* @return |
|||
*/ |
|||
public static String getMonthDimId(Date date) { |
|||
return DateUtils.format(date, DateUtils.DATE_PATTERN_YYYYMM); |
|||
} |
|||
|
|||
/** |
|||
* 获取周维度ID ,每周的星期一为 周的开始 |
|||
* @param date |
|||
* @return |
|||
*/ |
|||
public static String getWeekDimId(Date date) { |
|||
String yyyy = DateUtils.format(date, DateUtils.DATE_PATTERN_YYYY); |
|||
Calendar calendar = Calendar.getInstance(); |
|||
calendar.setFirstDayOfWeek(Calendar.MONDAY); |
|||
calendar.setTime(date); |
|||
return yyyy.concat("W").concat(calendar.get(Calendar.WEEK_OF_YEAR)+""); |
|||
} |
|||
|
|||
/** |
|||
* 获取季度维度ID |
|||
* @param date |
|||
* @return |
|||
*/ |
|||
public static String getQuarterDimId(Date date) { |
|||
String yyyy = DateUtils.format(date, DateUtils.DATE_PATTERN_YYYY); |
|||
return yyyy.concat("Q").concat(DateUtils.getQuarterIndex(date) + ""); |
|||
} |
|||
|
|||
/** |
|||
* 获取年维度ID |
|||
* @param date |
|||
* @return |
|||
*/ |
|||
public static String getYearDimId(Date date) { |
|||
return DateUtils.format(date, DateUtils.DATE_PATTERN_YYYY); |
|||
} |
|||
|
|||
/** |
|||
* 获取封装了所有ID的对象 |
|||
* @return |
|||
*/ |
|||
public static DimIdBean getDimIdBean(Date date) { |
|||
DimIdBean dimIdBean = new DimIdBean(); |
|||
dimIdBean.setDateId(getDateDimId(date)); |
|||
dimIdBean.setMonthId(getMonthDimId(date)); |
|||
dimIdBean.setWeekId(getWeekDimId(date)); |
|||
dimIdBean.setQuarterId(getQuarterDimId(date)); |
|||
dimIdBean.setYearId(getYearDimId(date)); |
|||
return dimIdBean; |
|||
} |
|||
|
|||
public static void main(String[] args) { |
|||
DimIdBean dimIdBean = getDimIdBean(DateUtils.stringToDate("2020-06-14",DateUtils.DATE_PATTERN)); |
|||
System.out.println(dimIdBean); |
|||
} |
|||
|
|||
@Data |
|||
public static class DimIdBean { |
|||
private String dateId; |
|||
private String monthId; |
|||
private String quarterId; |
|||
private String yearId; |
|||
private String weekId; |
|||
|
|||
public DimIdBean() { |
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue