常用 日期 年月周日获取

//获取这一年的日历
private static Calendar getCalendarFormYear(int year){
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
cal.set(Calendar.YEAR, year);
return cal;
}

//获取某一年的某一周的周日日期
public static Date getEndDayOfWeekNo(int year, int weekNo) throws ParseException {
Calendar cal = getCalendarFormYear(year);
cal.set(Calendar.WEEK_OF_YEAR, weekNo);
cal.add(Calendar.DAY_OF_WEEK, 6);
//获得SimpleDateFormat类,我们转换为yyyy-MM-dd的时间格式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");//注意月份是MM
String start = cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH) + 1) + "-" +
cal.get(Calendar.DAY_OF_MONTH);
Date date= java.sql.Date.valueOf(start);
return date;
}

//获取某一年的某一周的周一日期
public static Date getStartDayOfWeekNo(int year, int weekNo) throws ParseException {
Calendar cal = getCalendarFormYear(year);
cal.set(Calendar.WEEK_OF_YEAR, weekNo);
//获得SimpleDateFormat类,我们转换为yyyy-MM-dd的时间格式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");//注意月份是MM
String start = cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH) + 1) + "-" +
cal.get(Calendar.DAY_OF_MONTH);
Date date= java.sql.Date.valueOf(start);
return date;
}

/**
* 获取指定年月的第一天
* @param year
* @param month
* @return
*/
public static Date getFirstDayOfMonth1(int year, int month) {
Calendar cal = Calendar.getInstance();
//设置年份
cal.set(Calendar.YEAR, year);
//设置月份
cal.set(Calendar.MONTH, month-1);
//获取某月最小天数
int firstDay = cal.getMinimum(Calendar.DATE);
//设置日历中月份的最小天数
cal.set(Calendar.DAY_OF_MONTH,firstDay);
//格式化日期
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String start = cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH) + 1) + "-" +
cal.get(Calendar.DAY_OF_MONTH);
Date date= java.sql.Date.valueOf(start);
return date;
}

/**
* 获取指定年月的最后一天
* @param year
* @param month
* @return
*/
public static Date getLastDayOfMonth1(int year, int month) {
Calendar cal = Calendar.getInstance();
//设置年份
cal.set(Calendar.YEAR, year);
//设置月份
cal.set(Calendar.MONTH, month-1);
//获取某月最大天数
int lastDay = cal.getActualMaximum(Calendar.DATE);
//设置日历中月份的最大天数
cal.set(Calendar.DAY_OF_MONTH, lastDay);
//格式化日期
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String start = cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH) + 1) + "-" +
cal.get(Calendar.DAY_OF_MONTH);
Date date= java.sql.Date.valueOf(start);
return date;
}
/**
* 获取指定年月的第一天
* @param year
* @param
* @return
*/
public static Date getFirstDay(int year) {
Calendar cal = Calendar.getInstance();
//设置年份
cal.set(Calendar.YEAR, year);
//设置月份
cal.set(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_MONTH,1);
String start = cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH) + 1) + "-" +
cal.get(Calendar.DAY_OF_MONTH);
Date date= java.sql.Date.valueOf(start);
return date;
}
/**
* 获取指定年月的最后一天
* @param year
* @param
* @return
*/
public static Date getLastDay(int year) {
Calendar cal = Calendar.getInstance();
//设置年份
cal.set(Calendar.YEAR, year);
//设置月份
cal.set(Calendar.MONTH,11);
cal.set(Calendar.DAY_OF_MONTH,31);
String start = cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH) + 1) + "-" +
cal.get(Calendar.DAY_OF_MONTH);
Date date= java.sql.Date.valueOf(start);
return date;
}
/**
* 拆分时间年
* @param dtae
* @param
* @return
*/
public static int getYearDay(Date dtae) {
SimpleDateFormat sdf0 = new SimpleDateFormat("yyyy");
String str1 = sdf0.format(dtae);
int year = 0;
try {
year = Integer.parseInt(str1);
} catch (NumberFormatException e) {
e.printStackTrace();
}
return year;
}
/**
* 拆分时间月
* @param dtae
* @param
* @return
*/
public static int getMonthDay(Date dtae) {
SimpleDateFormat sdf1 = new SimpleDateFormat("MM");
String str1 = sdf1.format(dtae);
int month = 0;
try {
month = Integer.parseInt(str1);
} catch (NumberFormatException e) {
e.printStackTrace();
}
return month;
}

/**
* 根据年 月 获取对应的月份 天数
*/
public static String[] getDaysByYearMonth(int year, int month) {

Calendar a = Calendar.getInstance();
a.set(Calendar.YEAR, year);
a.set(Calendar.MONTH, month - 1);
a.set(Calendar.DATE, 1);
a.roll(Calendar.DATE, -1);
int maxDate = a.get(Calendar.DATE);
if(maxDate == 31){
String[] xDate = {"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"};
return xDate;
}else if(maxDate == 30){
String[] xDate = {"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30"};
return xDate;
}else if(maxDate == 28){
String[] xDate = {"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28"};
return xDate;
}else {
String[] xDate = {"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28"};
return xDate;
}
}

/**
* 获取当年每个月数组
* @return
*/
public static String[] getByYearMonthL() {
String[] last12Months = new String[12];
Calendar cal = Calendar.getInstance();
//如果当前日期大于二月份的天数28天或者29天会导致计算月份错误,会多出一个三月份,故设置一个靠前日期解决此问题
for (int i = 0; i < 12; i++) {
last12Months[0 + i] = cal.get(Calendar.YEAR) + "-" + (i + 1)+"-01";
cal.set(Calendar.MONTH, i + 1); //逐次往前推1个月
}
// for (int i = 0; i < last12Months.length; i++) {
// System.out.println(last12Months[i]);
// }
return last12Months;
}

/**
* 获取当天所有小时数组
* @return
*/
public static String[] getByDayHourL() {
String[] last24Hour = new String[24];
Calendar cal = Calendar.getInstance();
for (int i = 0; i < 24; i++) {
last24Hour[0 + i] = cal.get(Calendar.YEAR) + "-" +(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.DATE)+" "+(i)+":"+cal.get(Calendar.MINUTE);
cal.set(Calendar.HOUR_OF_DAY, i + 1);
}
// for (int i = 0; i < last12Months.length; i++) {
// System.out.println(last12Months[i]);
// }
return last24Hour;
}
public static String[] getByDayHourLTe() {
String[] last24Hour = new String[24];
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH");//时间格式化
Calendar calendar=Calendar.getInstance();
Date date=new Date();
calendar.setTime(date);

for(int i=24;i>0;i--){//当前时间循环24小时减下去

calendar.set(Calendar.HOUR_OF_DAY,calendar.get(Calendar.HOUR_OF_DAY) - 1);
String time = sdf.format(calendar.getTime());
last24Hour[i-1]=time;
}
return last24Hour;
}
/**
* 時間戳格式化
* @param date
* @param
* @return
*/
public static String getStringDate(Date date) {
SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");
String str1 = sdfDate.format(date);
return str1;
}
posted @ 2021-09-17 11:20  百鬼&夜行  阅读(72)  评论(0编辑  收藏  举报