dateutils.java

来自「JSP_博客网站系统,功能完整。学习JSP的好资料。开发时采用Eclipse+M」· Java 代码 · 共 184 行

JAVA
184
字号
package huc.blog.util;

import java.util.Calendar;
import java.util.Date;

public class DateUtils {
	
	public static Date getFirstTime(){
		Calendar cal = Calendar.getInstance();
		cal.set(Calendar.HOUR_OF_DAY,0);
		cal.set(Calendar.MINUTE,0);
		cal.set(Calendar.SECOND,0);
		cal.set(Calendar.DATE, cal.getActualMinimum(cal.DATE));
		return cal.getTime();
	}
	
	public static Date getLastTime(){
		Calendar cal = Calendar.getInstance();
		cal.roll(Calendar.MONTH, true);
		cal.set(Calendar.HOUR_OF_DAY,0);
		cal.set(Calendar.MINUTE,0);
		cal.set(Calendar.SECOND,0);
		cal.set(Calendar.DATE, cal.getActualMinimum(cal.DATE));
		return cal.getTime();
	}
	
	//dateString格式yyyyMM
	public static Date getFirstTime(String dateString){
		Calendar cal = Calendar.getInstance();
		cal.set(Calendar.YEAR, Integer.parseInt(dateString.substring(0,4)));
		cal.set(Calendar.MONTH, Integer.parseInt(dateString.substring(4)) - 1);
		cal.set(Calendar.HOUR_OF_DAY,0);
		cal.set(Calendar.MINUTE,0);
		cal.set(Calendar.SECOND,0);
		cal.set(Calendar.DATE, cal.getActualMinimum(cal.DATE));
		return cal.getTime();
	}
	
	//dateString格式yyyyMM
	public static Date getLastTime(String dateString){
		Calendar cal = Calendar.getInstance();
		cal.set(Calendar.YEAR, Integer.parseInt(dateString.substring(0,4)));
		cal.set(Calendar.MONTH, Integer.parseInt(dateString.substring(4)));
		cal.set(Calendar.HOUR_OF_DAY,0);
		cal.set(Calendar.MINUTE,0);
		cal.set(Calendar.SECOND,0);
		cal.set(Calendar.DATE, cal.getActualMinimum(cal.DATE));
		return cal.getTime();
	}
	
	/**
	 * 获得月份加1的时间。
	 * 例如,dateString="200503",返回值为"200504";dateString="200511",返回值为"200512"
	 * @param	dateString格式yyyyMM
	 * @param	flag	true:up;false:down
	 * 返回格式yyyyMM
	 */
	public static String roleTime(String dateString, boolean flag){
		Calendar cal = Calendar.getInstance();
		
		cal.set(Calendar.YEAR, Integer.parseInt(dateString.substring(0,4)));
		if(flag)
			cal.set(Calendar.MONTH, Integer.parseInt(dateString.substring(4)));
		else
			cal.set(Calendar.MONTH, Integer.parseInt(dateString.substring(4)) - 2);
		cal.set(Calendar.DATE, cal.getActualMinimum(cal.DATE));
		cal.set(Calendar.HOUR_OF_DAY,0);
		cal.set(Calendar.MINUTE,0);
		cal.set(Calendar.SECOND,0);
		
		String time = cal.getTime().toLocaleString();
		StringBuffer temp = new StringBuffer();
		temp.append(time.substring(0,4));
		temp.append(time.substring(5,time.indexOf("-",5)));
		if(temp.length() < 6){
			temp.insert(4, "0");
		}
		
		return temp.toString();
	}
	
	/**
	 * 比较string时间是否在当前时间之前
	 * @param dateString	格式yyyyMM
	 * @param flag	true:before;false:after
	 * @return	true	-	dateString在当前月份的最后一天的时间前或后
	 * 			false	-	dateString在当前月份的最后一天或在当前月份的最后一天的时间之后或前
	 */
	public static boolean compareTime(String dateString, boolean flag){
		Calendar cal = Calendar.getInstance();
		cal.set(Calendar.YEAR, Integer.parseInt(dateString.substring(0,4)));
		cal.set(Calendar.MONTH, Integer.parseInt(dateString.substring(4)) - 1);
		cal.set(Calendar.DATE, cal.getActualMinimum(cal.DATE));
		cal.set(Calendar.HOUR_OF_DAY,0);
		cal.set(Calendar.MINUTE,0);
		cal.set(Calendar.SECOND,0);
		
		//当前月份的最后一天的时间
		Calendar currentCal = Calendar.getInstance();
		currentCal.roll(Calendar.MONTH, true);
		currentCal.set(Calendar.DATE, currentCal.getActualMinimum(currentCal.DATE));
		currentCal.set(Calendar.HOUR_OF_DAY,0);
		currentCal.set(Calendar.MINUTE,0);
		currentCal.set(Calendar.SECOND,0);
		
		if(flag)
			return cal.before(currentCal);
		else
			return cal.after(currentCal);
	}
	
	/**
	 * 比较两个时间字符串的前后
	 * @param dateString1	格式yyyyMM
	 * @param dateString2	格式yyyyMM
	 * @return	true	-	dateString1在dateString2前或dateString1=dateString2
	 * 			false	-	在dateString2之后
	 */
	public static boolean compareTime(String dateString1, String dateString2){
		Calendar cal1 = Calendar.getInstance();
		cal1.set(Calendar.YEAR, Integer.parseInt(dateString1.substring(0,4)));
		cal1.set(Calendar.MONTH, Integer.parseInt(dateString1.substring(4)) - 1);
		cal1.set(Calendar.DATE, cal1.getActualMinimum(cal1.DATE));
		cal1.set(Calendar.HOUR_OF_DAY,0);
		cal1.set(Calendar.MINUTE,0);
		cal1.set(Calendar.SECOND,0);
		
		Calendar cal2 = Calendar.getInstance();
		cal2.set(Calendar.YEAR, Integer.parseInt(dateString2.substring(0,4)));
		cal2.set(Calendar.MONTH, Integer.parseInt(dateString2.substring(4)) - 1);
		cal2.set(Calendar.DATE, cal2.getActualMinimum(cal2.DATE));
		cal2.set(Calendar.HOUR_OF_DAY,0);
		cal2.set(Calendar.MINUTE,0);
		cal2.set(Calendar.SECOND,0);
		
		return cal1.before(cal2) || cal1.equals(cal2);
	}
	
	/**
	 * 将java.util.Date转化为yyyyMM
	 * @param dateString
	 * @return
	 */
	public static String format(Date date){
		String dateString = date.toLocaleString();
		StringBuffer temp = new StringBuffer();
		temp.append(dateString.substring(0,4));
		temp.append(dateString.substring(5,dateString.indexOf("-", 5)));
		if(temp.length() < 6){
			temp.insert(4, "0");
		}
		return temp.toString();
	}
	
	/**
	 * 将yyyy-MM-dd hh:mm:ss转化为yyyyMM
	 * @param dateString
	 * @return
	 */
	public static String formatTo(String dateString){
		StringBuffer temp = new StringBuffer();
		temp.append(dateString.substring(0,4));
		temp.append(dateString.substring(5,7));
		return temp.toString();
	}
	
	/**
	 * 将yyyyMM转化为java.util.Date
	 * @param dateString
	 * @return
	 */
	public static Date formatToDate(String dateString){
		Calendar cal = Calendar.getInstance();
		cal.set(Calendar.YEAR, Integer.parseInt(dateString.substring(0,4)));
		cal.set(Calendar.MONTH, Integer.parseInt(dateString.substring(4)) - 1);
		cal.set(Calendar.DATE, cal.getActualMinimum(cal.DATE));
		cal.set(Calendar.HOUR_OF_DAY,0);
		cal.set(Calendar.MINUTE,0);
		cal.set(Calendar.SECOND,0);
		
		return cal.getTime();
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?