您的位置:首页 > 编程语言 > Java开发

日期工具类---DateUtil

2016-10-14 00:00 411 查看
public class DateUtil {
/**
* 每分钟秒数
*/
public static final int MINUTE_OF_SECONDS = 60;

/**
* 一小时秒数
*/
public static final int HOUR_OF_SECONDS = MINUTE_OF_SECONDS * 60;
/**
* 一天总共秒数
*/
public static final int DAY_OF_SECONDS = HOUR_OF_SECONDS * 24;
/**
* 防重复提交的标识在redis中保存的有效期
*/
public static final int PREVENT_REPEAT_COMMIT_VALID_TIME = MINUTE_OF_SECONDS * 10;

public static String formatDate(Date date, String format) {
SimpleDateFormat df = new SimpleDateFormat(format);
return df.format(date);
}

public static Date parseDate(String date, String format) throws ParseException {
SimpleDateFormat df = new SimpleDateFormat(format);
return df.parse(date);
}

public static Date format(Date date, String format) throws ParseException {
String formatDateStr = formatDate(date, format);
return parseDate(formatDateStr, "yyyy-MM-dd");
}

public static Integer getDayNum(Integer day, Integer dayUnit) {
return BidConstant.periodDayNum.get(dayUnit) * day;
}

//获得本月第一天0点时间
public static Date getCurrentMouthOfFirstDayBegin() {
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
return cal.getTime();
}

//获得本月最后一天24点时间
public static Date getCurrentMouthOfLastDayEnd() {
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 59, 59);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
cal.set(Calendar.HOUR_OF_DAY, 23);
return cal.getTime();
}

/**
* 获取指定日期及间隔时间的一天开始时间
*
* @param date 指定日期
* @param days 间隔天数,指定日期之前使用负数,之后的使用正数
* @return
*/
public static Date getAppointDayBeginTime(Date date, int days) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(Calendar.DATE, days);
c.set(Calendar.HOUR_OF_DAY, 00);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
return c.getTime();
}

/**
* 获取指定日期及间隔时间的一天结束时间
*
* @param date 指定日期
* @param days 间隔天数,指定日期之前使用负数,之后的使用正数
* @return
*/
public static Date getCurrentBeforeDayOfEndTime(Date date, int days) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(Calendar.DATE, days);
c.set(Calendar.HOUR_OF_DAY, 23);
c.set(Calendar.MINUTE, 59);
c.set(Calendar.SECOND, 59);
return c.getTime();
}

public static void main(String[] args) throws ParseException {
String format = ThreadSafeDateUtil.format(getCurrentMouthOfFirstDayBegin(), "yyyy-MM-dd HH:mm:ss");
String format1 = ThreadSafeDateUtil.format(getCurrentMouthOfLastDayEnd(), "yyyy-MM-dd HH:mm:ss");
System.out.println(format);
System.out.println(format1);
Calendar calendar = Calendar.getInstance();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-M-d H:m:s");
// 指定一个日期
Date date = dateFormat.parse("2013-6-1 13:24:16");
// 对 calendar 设置为 date 所定的日期
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 00);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
System.out.println(calendar.getTime().toLocaleString());
Calendar c2 = new GregorianCalendar();
c2.add(Calendar.DATE, 3);
c2.set(Calendar.HOUR_OF_DAY, 23);
c2.set(Calendar.MINUTE, 59);
c2.set(Calendar.SECOND, 59);
System.out.println(c2.getTime().toLocaleString());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java Date