import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Objects;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @Description:DateUtil 提供一些常用的时间想法的方法
*/
public final class DateUtil {
//日期时间类型格式
private static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
//日期时间类型格式
private static final String DATEHOUR_FORMAT = "yyyy-MM-dd HH:mm";
//日期类型格式
private static final String DATE_FORMAT = "yyyy-MM-dd";
//时间类型的格式
private static final String TIME_FORMAT = "HH:mm:ss";
//时间类型的格式(小时/分)
private static final String TIME_FORMAT_HOUR = "HH:mm";
//注意SimpleDateFormat不是线程安全的
private static ThreadLocal<SimpleDateFormat> ThreadDateTime = new ThreadLocal<SimpleDateFormat>();
private static ThreadLocal<SimpleDateFormat> ThreadDate = new ThreadLocal<SimpleDateFormat>();
private static ThreadLocal<SimpleDateFormat> ThreadTime = new ThreadLocal<SimpleDateFormat>();
private static ThreadLocal<SimpleDateFormat> ThreadHourTime = new ThreadLocal<SimpleDateFormat>();
private static ThreadLocal<SimpleDateFormat> ThreadDateHour = new ThreadLocal<SimpleDateFormat>();
/**
* 时间date1和date2的时间差-单位分钟
*
* @param date1
* @param date2
* @return 分钟
*/
public static int subtractMinute(Date date1, Date date2) {
long cha = date2.getTime() - date1.getTime();
return (int) (cha / (1000 * 60));
}
/**
* 讲指定的时间格式化成出返回
*
* @param date
* @return
*/
public static String timeHour(Date date) {
return TimeHourInstance().format(date);
}
private static SimpleDateFormat TimeHourInstance() {
SimpleDateFormat df = ThreadHourTime.get();
if (df == null) {
df = new SimpleDateFormat(TIME_FORMAT_HOUR);
ThreadHourTime.set(df);
}
return df;
}
/**
* 将指定的字符串解析为时间类型
*
* @param dateStr
* @return
* @throws ParseException
*/
public static Date timeHour(String dateStr) throws ParseException {
return TimeHourInstance().parse(dateStr);
}
}
DateUtil时间工具类
最新推荐文章于 2024-04-28 05:27:48 发布