java_method_日期方法

时间:2022-01-18 14:15:31
package cn.com.qmhd.tools;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; public class DateUtils {
private static DateUtils dateUtils = null;
private Calendar calendar;
private SimpleDateFormat sdf; public static DateUtils getInstance(){
if (dateUtils==null) {
dateUtils=new DateUtils();
}
return dateUtils;
} /**
* 时间格式转换
* @param date 指定日期
* @param format 日期转换成字符串的格式,例如:"yyyy-MM-dd HH:mm:ss"
*/
public String date(Date date,String format){
sdf=new SimpleDateFormat(format);
String time=sdf.format(date);
return time;
} /**
* 获取当前时间
* @param format 日期转换成字符串的格式,例如:"yyyy-MM-dd HH:mm:ss"
* @return 返回字符串格式当前时间
*/
public String getNowDate(String format){
sdf = new SimpleDateFormat(format);
return sdf.format(new Date());
} //获取当前时间年份
public int getNowYear(){
return Calendar.getInstance().get(Calendar.YEAR);
} //获取当前时间月份
public int getNowMonth(){
return Calendar.getInstance().get(Calendar.MONTH)+1;
} //获取当前时间日期
public int getNowDay(){
return Calendar.getInstance().get(Calendar.DATE);
} //获取当前时间小时
public int getNowHour(){
return Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
} //获取当前时间分钟
public int getNowMinute(){
return Calendar.getInstance().get(Calendar.MINUTE);
} //获取当前时间秒
public int getNowSecond(){
return Calendar.getInstance().get(Calendar.SECOND);
} /**获取指定某天的年、月、日、时、分、秒信息
* @param date 指定日期
* @param str 需要获取日期内信息名称
* @return 返回需要日期信息,当返回值为-1,则输入日期或者获取信息名称有误
*/
public int dateInfos(Date date,String str){
calendar=Calendar.getInstance();
calendar.setTime(date); int year=calendar.get(Calendar.YEAR);
int month=calendar.get(Calendar.MONTH)+1;
int day=calendar.get(Calendar.DATE);
int hour=calendar.get(Calendar.HOUR);
int minute=calendar.get(Calendar.MINUTE);
int second=calendar.get(Calendar.SECOND); if("year".equals(str)){
return year;
}else if("month".equals(str)){
return month;
}else if("day".equals(str)){
return day;
}else if("hour".equals(str)){
return hour;
}else if("minute".equals(str)){
return minute;
}else if("second".equals(str)){
return second;
} return -1;
} /**
* 获取指定日期之前或者之后某月第一天
* @param date 指定日期
* @param month 指定日期之前几月(负数)或者之后几月(正数),当month=0时,则得到指定日期当月
* @param format 指定之前几天(负数)或者之后几天(正数)
* @return 返回字符串格式日期
*/
public String getFirstDay(Date date,int month,String format){
calendar=Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH,1);
calendar.add(Calendar.MONTH, month); Date getDate=calendar.getTime();
return date(getDate, format);
} /**
* 获取指定日期之前或者之后某月最后一天
* @param date 指定日期
* @param month 指定日期之前几月(负数)或者之后几月(正数),当month=0时,则得到指定日期当月
* @param format 指定之前几天(负数)或者之后几天(正数)
* @return 返回字符串格式日期
*/
public String getLastDay(Date date,int month,String format){
calendar=Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, month+1);
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.add(Calendar.DAY_OF_MONTH,-1); Date getDate=calendar.getTime();
return date(getDate, format);
} /**
* 获取指定时间前或后几天日期
* @param date 指定日期
* @param day 指定日期之前几天(负数)或者之后几天(正数)
* @param format 日期转换成字符串的格式,例如:"yyyy-MM-dd HH:mm:ss"
* @return time 返回字符串格式日期
*/
public String getBeforeOrAfterDate(Date date,int day,String format){
calendar=Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, day); Date getDate=calendar.getTime();
sdf=new SimpleDateFormat(format);
String time=sdf.format(getDate); return time;
} /**
* 获取指定时间前或后几天日期
* @param date 指定日期
* @param day 指定之前几天(负数)或者之后几天(正数)
* @return 返回date类型日期
*/
public int getBeforeOrAfterDay(Date date,int day){
calendar=Calendar.getInstance();
calendar.setTime(date); return calendar.get(Calendar.DATE)+day;
} }