天天看點

java 時間格式比對_Java 日期格式化,日期比較

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Calendar;

import java.util.Date;

import java.util.List;

import org.apache.commons.lang.StringUtils;public classDateUtilEx {public final static String yyyy = "yyyy";public final static String yyMMdd = "yyMMdd";public final static String yyyyMM = "yyyyMM";public final static String yyyyMMdd = "yyyyMMdd";public final static String yyyyMMddHHmmss = "yyyyMMddHHmmss";public final static String yyyy_MM_dd = "yyyy-MM-dd";public final static String yyyy_MM_dd_HH_mm_ss = "yyyy-MM-dd HH:mm:ss";

public staticYearMonthDto getLastYearAndMonth() {

YearMonthDto dto= newYearMonthDto();

Calendar cal=Calendar.getInstance();

cal.setTime(newDate());

cal.add(Calendar.MONTH,-1);int year = cal.get(Calendar.YEAR);int lastMonth = cal.get(Calendar.MONTH) + 1;

dto.setYear(year);

dto.setMonth(lastMonth);returndto;

}

public staticYearMonthDto getLastYearAndMonth(Date date) {

YearMonthDto dto= newYearMonthDto();

Calendar cal=Calendar.getInstance();

cal.setTime(date);

cal.add(Calendar.MONTH,-1);int year = cal.get(Calendar.YEAR);int lastMonth = cal.get(Calendar.MONTH) + 1;

dto.setYear(year);

dto.setMonth(lastMonth);returndto;

}

public staticYearMonthDto getNextYearAndMonth(Date nowDate) {

YearMonthDto dto= newYearMonthDto();

Calendar cal=Calendar.getInstance();

cal.setTime(nowDate);

cal.add(Calendar.MONTH,1);int year = cal.get(Calendar.YEAR);int lastMonth = cal.get(Calendar.MONTH) + 1;

dto.setYear(year);

dto.setMonth(lastMonth);returndto;

}

public staticYearMonthDayDto getYearMonthDay(Date date) {

YearMonthDayDto dto= newYearMonthDayDto();

Calendar cal=Calendar.getInstance();

cal.setTime(date);int year = cal.get(Calendar.YEAR);int month = cal.get(Calendar.MONTH) + 1;int day = cal.get(Calendar.DAY_OF_MONTH);

dto.setYear(year);

dto.setMonth(month);

dto.setDay(day);

dto.setDay(day);returndto;

}

public static ListgetYearMonthBetween(Date minDate, Date maxDate) {

List result = new ArrayList();try{

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM");//格式化為年月

String minDateStr =sdf.format(minDate);

String maxDateStr=sdf.format(maxDate);

Calendar min=Calendar.getInstance();

Calendar max=Calendar.getInstance();

min.setTime(sdf.parse(minDateStr));

min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1);

max.setTime(sdf.parse(maxDateStr));

max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2);

Calendar curr=min;

YearMonthDto dto= null;

YearMonthDayDto yearMonthDay=getYearMonthDay(minDate);int i = 0;while(curr.before(max)) {

dto= newYearMonthDto();

dto.setYear(curr.get(Calendar.YEAR));

dto.setMonth(curr.get(Calendar.MONTH) + 1);if (i == 0) {

dto.setDay(yearMonthDay.getDay());

}else{

dto.setDay(1);

}

result.add(dto);

curr.add(Calendar.MONTH,1);

i++;

}

}catch(Exception e) {

e.printStackTrace();

}returnresult;

}public static voidmain(String args[]) {

System.out.println(parseDate(2016, 1, 1));

}

public static Date getMonthEndDate(int year, intmonth) {

Calendar cal=Calendar.getInstance();//設定年份

cal.set(Calendar.YEAR, year);//設定月份

cal.set(Calendar.MONTH, month);//設定 後一個月的 第一天

cal.set(Calendar.DAY_OF_MONTH, 1);//後一個月的第一天 減一天 就為上一個月的最後一天

cal.add(Calendar.DAY_OF_MONTH, -1);

Date lastDate=cal.getTime();//格式化日期

returnlastDate;

}

public static Date getFirstDayOfMonth(int year,intmonth){

Calendar cal=Calendar.getInstance();//設定年份

cal.set(Calendar.YEAR,year);//設定月份

cal.set(Calendar.MONTH, month-1);//擷取某月最小天數

int firstDay =cal.getActualMinimum(Calendar.DAY_OF_MONTH);//設定月曆中月份的最小天數

cal.set(Calendar.DAY_OF_MONTH, firstDay);

Date firstDayOfMonth=cal.getTime();returnfirstDayOfMonth;

}

public staticboolean checkIsEndDate(Date date) {

Calendar cal=Calendar.getInstance();

cal.setTime(date);if (cal.get(Calendar.DATE) ==cal.getActualMaximum(Calendar.DAY_OF_MONTH)) {return true;

}else{return false;

}

}

public staticString formatDate(Date date, String pattern) {if (date == null) {return "";

}

SimpleDateFormat sdf= newSimpleDateFormat(pattern);returnsdf.format(date);

}

public staticDate parseDate(String date, String pattern) {if(StringUtils.isEmpty(date)) {return null;

}

SimpleDateFormat sdf= newSimpleDateFormat(pattern);try{returnsdf.parse(date);

}catch(ParseException e) {//TODO Auto-generated catch block

e.printStackTrace();

}return null;

}

public static Date parseDate(int year, intmonth) {return DateUtilEx.parseDate(year + "-" + StringUtils.leftPad(month + "", 2, "0") + "-01",

DateUtilEx.yyyy_MM_dd);

}

public static Date parseDate(int year, int month, intday) {returnDateUtilEx.parseDate(

year+ "-" + StringUtils.leftPad(month + "", 2, "0") + "-" + StringUtils.leftPad(day + "", 2, "0"),

DateUtilEx.yyyy_MM_dd);

}

public static String format(int year, int month, intday, String spaceMark) {return year + spaceMark + StringUtils.leftPad(month + "", 2, "0") +spaceMark+ StringUtils.leftPad(day + "", 2, "0");

}

public static Date long2Date(longtime) {

Calendar c=Calendar.getInstance();

c.setTimeInMillis(time);returnc.getTime();

}

public staticDate getMinMonthDate(Date date) {

Calendar calendar=Calendar.getInstance();

calendar.setTime(date);

calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));returncalendar.getTime();

}

public staticDate getMaxMonthDate(Date date) {

Calendar calendar=Calendar.getInstance();

calendar.setTime(date);

calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));returncalendar.getTime();

}

}