package org.exitsoft.common.utils; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; import org.apache.commons.lang3.StringUtils; /** * 时间工具类 扩展rg.apache.commons.lang3.time.DateUtils * * @author vincent * */ public class DateUtils extends org.apache.commons.lang3.time.DateUtils{ /** * 存储SimpleDateFormat对应格式发的String类型 */ private static Map<String, SimpleDateFormat> map = new HashMap<String, SimpleDateFormat>(); /** * 格式化时间,返回格式化后的时间字符串 * * <pre> * 例子,如有一个Date = 2012-08-09: * DateUtils.format(date,"yyyy-MM-dd") = "2012-08-09" * DateUtils.format(date,"yyyy年MM月dd日") = "2012年08月09日" * DateUtils.format(date,"") = null * DateUtils.format(date,null) = null * </pre> * * @param date 时间 * @param parsePatterns 格式化字符串 * * @return String */ public static String format(Date date,String parsePatterns) { if(StringUtils.isEmpty(parsePatterns) || date == null) { return null; } return getSimpleDateFormat(parsePatterns).format(date); } /** * 通过时间格式化字符串获取SimpleDateFormat * * @param parsePatterns 时间格式化 * * @return {@link SimpleDateFormat} */ public static SimpleDateFormat getSimpleDateFormat(String parsePatterns) { SimpleDateFormat dateFormat = null; if (map.containsKey(parsePatterns)) { dateFormat = map.get(parsePatterns); } else { dateFormat = new SimpleDateFormat(parsePatterns); map.put(parsePatterns, dateFormat); } return dateFormat; } }