package com.casic.accessControl.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; /** * 格式化日期工具类 * 默认模式yyyy-MM-dd HH:mm:ss * @author Administrator * */ public class TimeFormat { private static final String DATE_FORMAT_STRING = "yyyy-MM-dd"; private static final String TIME_FORMAT_STRING = "HH:mm:ss"; private static final String TIMESTAMP_FORMAT_STRING = "yyyy-MM-dd HH:mm:ss"; // 默认格式化格式 private static SimpleDateFormat defaultFormat = new SimpleDateFormat(TIMESTAMP_FORMAT_STRING); public static void setFormatString(String pattern) { defaultFormat.applyPattern(pattern); } /** * 默认格式化日期 * * @param Date date * @return String */ public static String format(Date date) { return defaultFormat.format(date); } /** * 日期格式化 * * @param date * @return */ public static String formatDate(Date date) { return TimeFormat.format(date, DATE_FORMAT_STRING); } /** * 时间格式化 * * @param date * @return */ public static String formatTime(Date date) { return TimeFormat.format(date, TIME_FORMAT_STRING); } /** * 时间戳格式化 * * @param date * @return */ public static String formatTimestamp(Date date) { return TimeFormat.format(date, TIMESTAMP_FORMAT_STRING); } /** * 以指定模式格式化日期 * * @param Date date * @param String pattern * @return String */ public static String format(Date date, String pattern) { SimpleDateFormat formatter = new SimpleDateFormat(pattern); return formatter.format(date); } /** * 根据起止日期生成日期序列 * 包括start和end的日期 * * @param start * @param end * @return */ public static List<String> generateDates(String start, String end) throws ParseException { List<String> dates = new ArrayList<String>(); Calendar s = Calendar.getInstance(); Calendar e = Calendar.getInstance(); s.setTime(TimeFormat.parse(start, DATE_FORMAT_STRING)); s.set(Calendar.HOUR_OF_DAY, 0); s.set(Calendar.MINUTE, 0); s.set(Calendar.SECOND, 0); e.setTime(TimeFormat.parse(end, DATE_FORMAT_STRING)); e.set(Calendar.HOUR_OF_DAY, 0); e.set(Calendar.MINUTE, 0); e.set(Calendar.SECOND, 0); while (s.before(e) == true) { dates.add(TimeFormat.formatDate(s.getTime())); s.add(Calendar.DATE, 1); } dates.add(end); return dates; } /** * 解析日期字符串 * * @param String source * @return Date * * @throws ParseException */ public static Date parse(String source) throws ParseException { return defaultFormat.parse(source); } /** * 以指定模式解析日期 * * @param String source * @param String pattern * @return Date * * @throws ParseException */ public static Date parse(String source, String pattern) throws ParseException { SimpleDateFormat formatter = new SimpleDateFormat(pattern); return formatter.parse(source); } public static Date parseDateWithoutTime(String source) throws ParseException { SimpleDateFormat formatter = new SimpleDateFormat(DATE_FORMAT_STRING); Calendar date = Calendar.getInstance(); date.setTime(formatter.parse(source)); date.set(Calendar.HOUR, 0); date.set(Calendar.HOUR, 0); date.set(Calendar.MINUTE, 0); return date.getTime(); } }