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