zoukankan      html  css  js  c++  java
  • 【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);
    	}
  • 相关阅读:
    C# 单例模式
    [C# 线程处理系列]专题四:线程同步
    C#实现远程开机(局域网测试通过)
    C#实现类只实例化一次(被多个类访问调用)
    c#委托与事件、消息、WndProc用法(转)
    UML 类图常用表示方法.
    C# Socket 接受数据不全的处理
    执行数据库操作失败: 连接未关闭。 连接的当前状态为打开
    hdu 2018 母牛的故事 动态规划入门题
    Codeforces 1029B. Creating the Contest 动态规划O(nlogn)解法 及 单调队列O(n)解法
  • 原文地址:https://www.cnblogs.com/the-fool/p/11054052.html
Copyright © 2011-2022 走看看