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;

}/**

* 获取某个日期的年份 月份 日期

*

* @param date

* @return*/

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;

}/**

* 获取两个日期之间的年份月份

*

* @param minDate

* @param maxDate

* @return*/

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));

}/**

* 获取某一个月的月末日期

*

* @param year

* @param month

* @return*/

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;

}

}/**

* 格式化日期

*

* @param date

* @param pattern

* @return*/

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

}

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

}/**

* 格式化日期

*

* @param date

* @param pattern

* @return*/

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;

}/**

* 格式化日期

*

* @param year

* @param month

* @return*/

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

DateUtilEx.yyyy_MM_dd);

}/**

* 格式化日期

*

* @param year

* @param month

* @return*/

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);

}/**

* 转换成数据格式

*

* @param year

* @param month

* @param day

* @param spaceMark

* @return*/

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");

}/**

* 长整形转换为日期

*

* @param time

* @return*/

public static Date long2Date(longtime) {

Calendar c=Calendar.getInstance();

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

}/**

* 获取月份起始日期

*

* @param date1

* @return*/

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();

}/**

* 获取月份结束日期

*

* @param date

* @return*/

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();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值