日期工具类
参考来源:
http://www.cnblogs.com/horrywu/p/4238190.html?utm_source=tuicool&utm_medium=referral
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
* 日期工具类
*
* @author
* @date
*
*/
public class DateUtils {
public static final String YYYYMMDD = "yyyy-MM-dd";
public static final String YYYYMMDDHHMMSS="yyyy-MM-dd HH:mm:ss";
public static final String MMDD = "MM-dd";
public static String getDateByFormat(Date date, String format) {
try {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
} catch (Exception e) {
}
return "--";
}
/**
* 当天的开始时间
* @return
*/
public static Date startOfToday() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
Date date=calendar.getTime();
return date;
}
/**
* 当天的结束时间
* @return
*/
public static Date endOfToday() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
calendar.set(Calendar.MILLISECOND, 999);
Date date=calendar.getTime();
return date;
}
/**
* 昨天的开始时间
* @return
*/
public static Date startOfyesterday() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.add(Calendar.DATE, -1);
calendar.set(Calendar.MILLISECOND, 0);
Date date=calendar.getTime();
return date;
}
/**
* 昨天的结束时间
* @return
*/
public static Date endOfyesterday() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
calendar.set(Calendar.MILLISECOND, 999);
calendar.add(Calendar.DATE, -1);
Date date=calendar.getTime();
return date;
}
/**
* 功能:获取上周的开始时间
*/
public static long startOfLastWeek() {// 当周开始时间
return startOfThisWeek() - 7 * 24 * 60 * 60 * 1000;
}
/**
* 功能:获取上周的结束时间
*/
public static long endOfLastWeek() {// 当周开始时间
return endOfThisWeek() - 7 * 24 * 60 * 60 * 1000;
}
/**
* 功能:获取本周的开始时间 示例:2013-05-13 00:00:00
*/
public static long startOfThisWeek() {// 当周开始时间
Calendar currentDate = Calendar.getInstance();
currentDate.setFirstDayOfWeek(Calendar.MONDAY);
currentDate.set(Calendar.HOUR_OF_DAY, 0);
currentDate.set(Calendar.MINUTE, 0);
currentDate.set(Calendar.SECOND, 0);
currentDate.set(Calendar.MILLISECOND, 0);
currentDate.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
Date date=currentDate.getTime();
return date.getTime();
}
/**
* 功能:获取本周的结束时间 示例:2013-05-19 23:59:59
*/
public static long endOfThisWeek() {// 当周结束时间
Calendar currentDate = Calendar.getInstance();
currentDate.setFirstDayOfWeek(Calendar.MONDAY);
currentDate.set(Calendar.HOUR_OF_DAY, 23);
currentDate.set(Calendar.MINUTE, 59);
currentDate.set(Calendar.SECOND, 59);
currentDate.set(Calendar.MILLISECOND, 999);
currentDate.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
Date date=currentDate.getTime();
return date.getTime();
}
/**
* 功能:获取本月的开始时间
*/
public static long startOfThisMonth() {// 当周开始时间
Calendar currentDate = Calendar.getInstance();
currentDate.set(Calendar.HOUR_OF_DAY, 0);
currentDate.set(Calendar.MINUTE, 0);
currentDate.set(Calendar.SECOND, 0);
currentDate.set(Calendar.MILLISECOND, 0);
currentDate.set(Calendar.DAY_OF_MONTH, 1);
Date date=currentDate.getTime();
return date.getTime();
}
/**
* 功能:获取本月的结束时间
*/
public static long endOfThisMonth() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MILLISECOND, 999);
cal.add(Calendar.MONTH, 1);
cal.add(Calendar.DATE, -1);
Date date=cal.getTime();
return date.getTime();
}
/**
* 功能:获取上月的开始时间
*/
public static long startOfLastMonth() {// 当周开始时间
Calendar currentDate = Calendar.getInstance();
currentDate.set(Calendar.HOUR_OF_DAY, 0);
currentDate.set(Calendar.MINUTE, 0);
currentDate.set(Calendar.SECOND, 0);
currentDate.set(Calendar.MILLISECOND, 0);
currentDate.set(Calendar.DAY_OF_MONTH, 1);
currentDate.add(Calendar.MONTH, -1);
Date date=currentDate.getTime();
return date.getTime();
}
/**
* 功能:获取上月的结束时间
*/
public static long endOfLastMonth() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MILLISECOND, 999);
cal.add(Calendar.DATE, -1);
Date date=cal.getTime();
return date.getTime();
}
/**
* 根据long返回year
* @param milliseconds
* @return
*/
public static Object[] theYearOfTime(long milliseconds){
Calendar cal = Calendar.getInstance();
Date date=cal.getTime();
int thisYear=date.getYear()+1900;
cal.setTimeInMillis(milliseconds);
date=cal.getTime();
int regirsterYear=date.getYear()+1900;
if(regirsterYear<thisYear){
List<Integer> yearL=new ArrayList<Integer>();
for(int i=regirsterYear;i<=thisYear;i++){
yearL.add(i);
}
return yearL.toArray();
}else{
return new Object[]{thisYear};
}
}
/**
* 功能:获取本年的开始时间
*/
public static long startOfTheYear(int year) {// 当周开始时间
Calendar currentDate = Calendar.getInstance();
currentDate.set(Calendar.YEAR, year);
currentDate.set(Calendar.MONTH, 0);
currentDate.set(Calendar.HOUR_OF_DAY, 0);
currentDate.set(Calendar.MINUTE, 0);
currentDate.set(Calendar.SECOND, 0);
currentDate.set(Calendar.MILLISECOND, 0);
currentDate.set(Calendar.DAY_OF_MONTH, 1);
Date date=currentDate.getTime();
return date.getTime();
}
/**
* 功能:获取本年的结束时间
*/
public static long endOfTheYear(int year) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH,11);
cal.set(Calendar.DAY_OF_MONTH, 31);
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MILLISECOND, 999);
Date date=cal.getTime();
return date.getTime();
}
}
有关日期的其他相关操作:
1、获取当前日期的年、月、日
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1; //从0开始,所以+1
int day = c.get(Calendar.DAY_OF_MONTH); //取当前时间的日
int hour = c.get(Calendar.HOUR_OF_DAY); //取当前时间的小时