java中操作日期date常用类整理

package com.hongware.o2o.api.bussiness.openApi.service.mobile.form;


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class TimeToolClass {
	/**
	 * date 转换 String  
	 * @param date 要转换的日期
	 * @return 日期 String
	 * */
	public String getTransformationString(Date date){
		String a=(new SimpleDateFormat("yyyy-MM-dd")).format(date);  
		return a;
	}
	
	/**
	 * String 转换 Date  日期只能是不带时分秒的
	 * @param String 要转换的日期
	 * @return 日期 date
	 * @throws ParseException 
	 * */
	public Date getTransformation(String date) throws ParseException{
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		Date date1 = sdf.parse(date);
		return date1;
	}
	
	/**
	 * 获取两个日期之间的日期
	 * @param start 开始日期
	 * @param end 结束日期
	 * @return 日期集合
	 * */
	public List getBetweenDates(Date start, Date end) {
	    List result = new ArrayList();
	    Calendar tempStart = Calendar.getInstance();
	    tempStart.setTime(start);
	    tempStart.add(Calendar.DAY_OF_YEAR, 1);
	    Calendar tempEnd = Calendar.getInstance();
	    tempEnd.setTime(end);
	    while (tempStart.before(tempEnd)) {
	        result.add(tempStart.getTime());
	        tempStart.add(Calendar.DAY_OF_YEAR, 1);
	    }
	    return result;
	}
	
	/**
	 * 获取两个日期之间相差几天
	 * */
	public Long getDifference(String start,String end){
		long days=0;
		try {
			SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
	        Date fDate=sdf.parse(start);
	        Date oDate=sdf.parse(end);
	        days=(oDate.getTime()-fDate.getTime())/(1000*3600*24);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return days;
	}
	/**
	 * 获取当前小时
	 * */
	public int getDangqian(){
		SimpleDateFormat df1 = new SimpleDateFormat("HH");
		Date day=new Date();
		String todayEndDate=df1.format(day);
		int a=Integer.parseInt(todayEndDate);
		return a;
	}
	/**
	 * 获取从今天往前推得日期
	 * */
	public String getForwardDate(int a){
	SimpleDateFormat sdf =  new SimpleDateFormat("yyyy-MM-dd");
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.DATE, calendar.get(Calendar.DATE)-a);
        Date updateDate2 = calendar.getTime();
		return sdf.format(updateDate2);
	}
	/**
	 * 获取今日时间
	 * */
	public Map getToday(){
		SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH");
		Map map=new HashMap();
		Date day=new Date();
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		String todayStartDate=df.format(day)+" 00:00:00";
		String todayEndDate=df1.format(day)+":00:00";
		map.put("start", todayStartDate);
		map.put("end", todayEndDate);
		return map;
	}
	/**
	 * 获取今日时间(不带时分秒)
	 * */
	public Map getToday1(){
		Map map=new HashMap();
		Date day=new Date();
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		String todayStartDate=df.format(day);
		String todayEndDate=df.format(day);
		map.put("start", todayStartDate);
		map.put("end", todayEndDate);
		return map;
	}
	/**
	 * 获取昨日时间
	 * */
	public Map getYesterday(){
		Map map=new HashMap();
		Date as = new Date(new Date().getTime()-24*60*60*1000);
		SimpleDateFormat matter1 = new SimpleDateFormat("yyyy-MM-dd");
		String yesterdayStartDate = matter1.format(as)+" 00:00:00";
		String yesterdayEndDate = matter1.format(as)+" 23:59:59";
		map.put("start", yesterdayStartDate);
		map.put("end", yesterdayEndDate);
		return map;
	}
	/**
	 * 获取昨日时间(不带时分秒)
	 * */
	public Map getYesterday1(){
		Map map=new HashMap();
		Date as = new Date(new Date().getTime()-24*60*60*1000);
		SimpleDateFormat matter1 = new SimpleDateFormat("yyyy-MM-dd");
		String yesterdayStartDate = matter1.format(as);
		String yesterdayEndDate = matter1.format(as);
		map.put("start", yesterdayStartDate);
		map.put("end", yesterdayEndDate);
		return map;
	}
	/**
	 * 获取近七天时
	 * */
	public Map getSevenDays(){
	Map map=new HashMap();
	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
	Date as = new Date(new Date().getTime()-24*60*60*1000);
        Calendar c = Calendar.getInstance();  
        c.add(Calendar.DATE, - 7);  
        Date monday = c.getTime();
        String sevenDaysStartDate = sdf.format(monday)+" 00:00:00";
        String sevenDaysEndDate = sdf.format(as)+" 23:59:59";
        map.put("start", sevenDaysStartDate);
		map.put("end", sevenDaysEndDate);
		return map;
	}
	/**
	 * 获取近七天时(不带时分秒)
	 * */
	public Map getSevenDays1(){
	Map map=new HashMap();
	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
	Date as = new Date(new Date().getTime()-24*60*60*1000);
        Calendar c = Calendar.getInstance();  
        c.add(Calendar.DATE, - 7);  
        Date monday = c.getTime();
        String sevenDaysStartDate = sdf.format(monday);
        String sevenDaysEndDate = sdf.format(as);
        map.put("start", sevenDaysStartDate);
		map.put("end", sevenDaysEndDate);
		return map;
	}
	/**
	 * 获取近三十天时间
	 * */
	public Map getThirtyDays(){
	Map map=new HashMap();
	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
	Date as = new Date(new Date().getTime()-24*60*60*1000);
	String sevenDaysEndDate = sdf.format(as);
	//获取三十天前日期
        Calendar theCa = Calendar.getInstance();
        theCa.setTime(as);
        theCa.add(theCa.DATE, -29);//最后一个数字30可改,30天的意思
        Date start = theCa.getTime();
        String startDate = sdf.format(start);//三十天之前日期
        String a=startDate+" 00:00:00";
        String b=sevenDaysEndDate+" 23:59:59";
        map.put("start", a);
		map.put("end", b);
		return map;
	}
	/**
	 * 获取近三十天时间(不带时分秒)
	 * */
	public Map getThirtyDays1(){
	Map map=new HashMap();
	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
	Date as = new Date(new Date().getTime()-24*60*60*1000);
	String sevenDaysEndDate = sdf.format(as);
	//获取三十天前日期
        Calendar theCa = Calendar.getInstance();
        theCa.setTime(as);
        theCa.add(theCa.DATE, -29);//最后一个数字30可改,30天的意思
        Date start = theCa.getTime();
        String startDate = sdf.format(start);//三十天之前日期
        map.put("start", startDate);
		map.put("end", sevenDaysEndDate);
		return map;
	}
}

你可能感兴趣的:(java,date)