记录:特殊日期格式转换,如将yyyyMMdd转为01MAY2019
public static final String DATE_VIP_FORMAT = "yyyyMMdd";
public static String format(Date targetDate, String formatStr){
if (targetDate == null || StringUtils.isBlank(formatStr)){
return null;
}
SimpleDateFormat format = new SimpleDateFormat(formatStr);
return format.format(targetDate);
}
public static Date parse(String date, String pattern){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
try {
return simpleDateFormat.parse(date);
} catch (ParseException e) {
//blocker解决
logger.error("parse date error for input String {}",date);
}
return null;
}
public static String formatVipDateStr(Date date) {
return format(date, DATE_VIP_FORMAT);
}
public static Date parseVipDateStr(String date) {
return parse(date, DATE_VIP_FORMAT);
}
/**
* 将01MAY2019 转换为yyyyMMdd
*/
public static String getVipStr(String date){
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("ddMMMyyyy", Locale.ENGLISH);
DateFormatSymbols dateFormatSymbols = new DateFormatSymbols();
dateFormatSymbols.setShortMonths(new String[]{"JAN", "FEB", "MAR"
, "APR", "MAY", "JUN"
, "JUL", "AUG", "SEP"
, "OCT", "NOV", "DEC"});
dateFormat.setDateFormatSymbols(dateFormatSymbols);
Date parse = dateFormat.parse(date);
return formatVipDateStr(parse);
} catch (ParseException e) {
logger.error("parse VIP date error for input String {}",date);
}
return null;
}
/**
* 将yyyyMMdd转为01MAY2019
*/
public static String getVipFmt(String dateStr){
try {
//获取date对象
Date date = parseVipDateStr(dateStr);
SimpleDateFormat dateFormat = new SimpleDateFormat("ddMMMyyyy", Locale.ENGLISH);
DateFormatSymbols dateFormatSymbols = new DateFormatSymbols();
dateFormatSymbols.setShortMonths(new String[]{"JAN", "FEB", "MAR"
, "APR", "MAY", "JUN"
, "JUL", "AUG", "SEP"
, "OCT", "NOV", "DEC"});
dateFormat.setDateFormatSymbols(dateFormatSymbols);
String format = dateFormat.format(date);
return format;
} catch (Exception e) {
logger.error("parse VIP date error for input String {}",dateStr);
}
return null;
}
public static void main(String[] args) {
String vipStr = getVipFmt("20190503");
System.out.println(vipStr);
}