根据日期需要,设计、实现动态生成日期工具类
传递参数为字符串,长度共八位,用英文,分割,前六位分别代表年月日时分秒,-1,代表当前列-1,正数则表示增加
0,年相加相减响应数值
0,月相加相减响应数值
0,日相加相减响应数值
0,时相加相减响应数值
0,分相加相减响应数值
0,秒相加相减响应数值
0,0代表对时分秒不做处理,1时分秒固定为00:00:00,2时分秒固定为23:59:59
0,日期格式:0--yyyy-MM-dd HH:mm:ss
1--yyyy-MM-dd
2--HH:mm:ss
3--yyyy-MM-dd HH:mm:ss:SSS
public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss,yyyy-MM-dd HH:mm:ss:SSS";
public static String getTime(Object obj) throws Exception {
String result = null;
try {
String string = (String) obj;
String[] s = string.split(",");
Calendar c = Calendar.getInstance();
c.add(Calendar.YEAR, Integer.parseInt(s[0]));
c.add(Calendar.MONTH, Integer.parseInt(s[1]));
c.add(Calendar.DAY_OF_MONTH, Integer.parseInt(s[2]));
c.add(Calendar.HOUR_OF_DAY, Integer.parseInt(s[3]));
c.add(Calendar.MINUTE, Integer.parseInt(s[4]));
c.add(Calendar.SECOND, Integer.parseInt(s[5]));
if (Integer.parseInt(s[6]) == 1) {
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
}
if (Integer.parseInt(s[6]) == 2) {
c.set(Calendar.HOUR_OF_DAY, 23);
c.set(Calendar.MINUTE, 59);
c.set(Calendar.SECOND, 59);
}
Date time = c.getTime();
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT.split(",")[Integer.parseInt(s[7])]);
result = sdf.format(time);
} catch (Exception e) {
throw new Exception("时间配置错误");
}
return result;
}