首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

日期处置DateUtils

2012-09-14 
日期处理DateUtils?import java.text.SimpleDateFormatimport java.util.ArrayListimport java.util.Cal

日期处理DateUtils

?

import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.List;public class DateUtils {/** * 获取当前时间 *  * @param date * @return */public static Date getCurrentDate() {return new Date(System.currentTimeMillis());}/** * 将时间置为23时59分钟59秒 *  * @param date * @return */public static Date setFullPassDay(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.HOUR_OF_DAY, 23);calendar.set(Calendar.MINUTE, 59);calendar.set(Calendar.SECOND, 59);return calendar.getTime();}/** * 将时间后退2小时 *  * @param date * @return */public static Date getFallBack2Hour(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.HOUR_OF_DAY,calendar.get(Calendar.HOUR_OF_DAY) - 2);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND, 0);return calendar.getTime();}/** * 将时间精确到小时 *  * @param date * @return */public static Date getTimeHour(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND, 0);return calendar.getTime();}/** * 获取两个时间间隔的天数 *  * @param date * @return */public static long getDiffDays(Date startDate, Date endDate) {long difftime = endDate.getTime() - startDate.getTime();return difftime / (24L * 60L * 60L * 1000L);}/** * 根据日期获取当天起始时间 *  *  * @param date * @return */public static Date getStartDateOfCurrentDay(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND, 0);return calendar.getTime();}public static Date getStartYesterday(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.DAY_OF_MONTH, -1);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND, 0);return calendar.getTime();}/** * 根据日期获取下一天起始时间 *  *  * @param date * @return */public static Date getStartDateOfNextDay(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.DAY_OF_MONTH, 1);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND, 0);return calendar.getTime();}/** * 根据日期当前日期顺延一周后的起始时间 *  *  * @param date * @return */public static Date getStartDateOfNextSevenDay(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.DAY_OF_MONTH, 7);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND, 0);return calendar.getTime();}/** * 根据日期当前日期顺延一周后的起始时间 *  *  * @param date * @return */public static Date getStartDateOfMonth(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.DAY_OF_MONTH, 1);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND, 0);return calendar.getTime();}/** * 根据日期当前日期顺延一月后的起始时间 *  *  * @param date * @return */public static Date getStartDateOfNextMonth(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.MONTH, 1);calendar.set(Calendar.DAY_OF_MONTH, 1);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND, 0);return calendar.getTime();}/* * 封装一天只能的时间区域 */public static List<Date> getStaticByDateDateArea(Date date) {List<Date> dates = new ArrayList<Date>();Date startdate = getStartDateOfCurrentDay(date);Date nextday = getStartDateOfNextDay(date);int step = 2;dates.add(startdate);for (int i = 1; i < 12; i++) {Calendar calendar = Calendar.getInstance();calendar.setTime(startdate);calendar.add(Calendar.HOUR_OF_DAY, i * step);dates.add(calendar.getTime());}dates.add(nextday);return dates;}/* * 封装一周之内时间区域 */public static List<Date> getStaticByWeekDateArea(Date date) {List<Date> dates = new ArrayList<Date>();Date startdate = getStartDateOfCurrentDay(date);Date nextday = getStartDateOfNextSevenDay(date);dates.add(startdate);for (int i = 1; i < 7; i++) {Calendar calendar = Calendar.getInstance();calendar.setTime(startdate);calendar.add(Calendar.DAY_OF_MONTH, i);dates.add(calendar.getTime());}dates.add(nextday);return dates;}/* * 封装一周之内时间区域List<String> */public static List<String> getStaticByWeekLabel(Date date) {SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd");List<String> dates = new ArrayList<String>();Date startdate = getStartDateOfCurrentDay(date);Date nextday = getStartDateOfNextSevenDay(date);dates.add(dateFormat.format(startdate));for (int i = 1; i < 7; i++) {Calendar calendar = Calendar.getInstance();calendar.setTime(startdate);calendar.add(Calendar.DAY_OF_MONTH, i);dates.add(dateFormat.format(calendar.getTime()));}return dates;}/* * 封装一月之内时间区域 */public static List<Date> getStaticByMonthDateArea(Date date) {List<Date> dates = new ArrayList<Date>();Date startdate = getStartDateOfMonth(date);Date nextday = getStartDateOfNextMonth(date);long daydiff = getDiffDays(startdate, nextday);dates.add(startdate);for (int i = 1; i < daydiff; i++) {Calendar calendar = Calendar.getInstance();calendar.setTime(startdate);calendar.add(Calendar.DAY_OF_MONTH, i);dates.add(calendar.getTime());}dates.add(nextday);return dates;}/* *封装一点时间之内的时间区域(天)  */public static List<Date> getStaticBySE(Date startDate,Date endDate){List<Date> dates = new ArrayList<Date>();long daydiff = getDiffDays(startDate, endDate);dates.add(startDate);for (int i = 1; i < daydiff; i++) {Calendar calendar = Calendar.getInstance();calendar.setTime(startDate);calendar.add(Calendar.DAY_OF_MONTH, i);dates.add(calendar.getTime());}dates.add(endDate);return dates;}/* * 封装一月之内时间区域 */public static List<String> getStaticByMonthLabel(Date date) {SimpleDateFormat dateFormat = new SimpleDateFormat("dd");List<String> dates = new ArrayList<String>();Date startdate = getStartDateOfMonth(date);Date nextday = getStartDateOfNextMonth(date);long daydiff = getDiffDays(startdate, nextday);dates.add(dateFormat.format(startdate));for (int i = 1; i < daydiff; i++) {Calendar calendar = Calendar.getInstance();calendar.setTime(startdate);calendar.add(Calendar.DAY_OF_MONTH, i);dates.add(dateFormat.format(calendar.getTime()));}return dates;}public static String formatDate(String format, Date date) {SimpleDateFormat dateFormat = new SimpleDateFormat(format);return dateFormat.format(date);}}
?

热点排行