【dateFormatSymbols】JAVA特殊日期格式转换

 

记录:特殊日期格式转换,如将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);
	}

 

posted @ 2019-05-16 15:10  黑猫先生  阅读(1455)  评论(0编辑  收藏  举报