0
点赞
收藏
分享

微信扫一扫

uitl之java Date/SimpleDateFormat/Calendar日期操作工具

package com;

import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

public class DateUtil {
// private Logger log = Logger.getLogger(DateUtil.class);
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
private static SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy");

/**
* 获取年的第几天,getDAY_OF_YEAR
*/
public static int getDAY_OF_YEAR(String rq) throws Exception {
int num = 0;
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(rq));
num = c.get(Calendar.DAY_OF_YEAR);
return num;
}

/**
* 获取月的第几天,getDAY_OF_MONTH
*/
public static int getDAY_OF_MONTH(String rq) throws Exception {
int num = 0;
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(rq));
num = c.get(Calendar.DAY_OF_MONTH);
return num;
}

/**
* 字符串的日期加上一天,在返回字符串
*/
public static String addOneDay(String countdate) throws Exception {
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(countdate));
c.add(Calendar.DATE, 1);
String rtn = sdf.format(c.getTime());
return rtn;
}

/**
* 字符串的日期减去一天,在返回字符串
*/
public static String subOneDay(String countdate) throws Exception {
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(countdate));
c.add(Calendar.DATE, -1);
String rtn = sdf.format(c.getTime());
return rtn;
}

/**
* @param rq
* 字符串的日期 格式 yyyy-MM-dd
* @param num
* @return 添加或减去它的天数,在返回字符串
* @throws Exception
* String
*
*/
public static String addOrSubRq(String rq, int num) throws Exception {
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(rq));
c.add(Calendar.DATE, num);
String rtn = sdf.format(c.getTime());
return rtn;
}

/**
* @param tjrq
* @return yyyy-MM-dd 格式化为 yyyyMMdd
*/
public static String formatDateForyyyyMMdd(String tjrq) throws Exception {
Date date = sdf.parse(tjrq);
tjrq = new SimpleDateFormat("yyyyMMdd").format(date);
return tjrq;
}

/**
* @param tjrq
* @return yyyy-MM-dd 格式化为 yyyy
*/
public static String formatDateForYYYY(String tjrq) throws Exception {
Date date = sdfYear.parse(tjrq);
tjrq = new SimpleDateFormat("yyyy").format(date);
return tjrq;
}

/**
* @param tjrq
* @return yyyy-MM-dd 格式化为 yyyyMM
*/
public static String formatDateForyyyyMM(String tjrq) throws Exception {
Date date = sdf.parse(tjrq);
tjrq = new SimpleDateFormat("yyyyMM").format(date);
return tjrq;
}

/**
* @param tjrq
* @return 将字符串日期减去一年
* @throws Exception
* String
*
*/
public static String subOneYearForDate(String tjrq) throws Exception {
Date date = sdf.parse(tjrq);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.YEAR, -1);
tjrq = sdf.format(calendar.getTime());

return tjrq;
}

/**
* @param tjrq
* @return 将字符串日期减去一个月
* @throws Exception
* String
*
*/
public static String subOneMonthForDate(String tjrq) throws Exception {
Date date = sdf.parse(tjrq);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, -1);
tjrq = sdf.format(calendar.getTime());
return tjrq;
}

/**
* @param tjrq
* 参数格式为yyyy-MM-dd
* @param type
* 参数 只能为month 或year
* @throws Exception
* 循环遍历,当月或当年日期,并返回list集合
*
*/
public static List<String> traversalMonthOrYear(String tjrq, String type) throws Exception {
List<String> list = new ArrayList<String>();
Calendar c = Calendar.getInstance();
int dayNum = 0;
if ("month".equals(type)) {
dayNum = DateUtil.getDAY_OF_MONTH(sdf.format(c.getTime()));
} else if ("year".equals(type)) {
dayNum = DateUtil.getDAY_OF_YEAR(sdf.format(c.getTime()));
}
for (int i = 1; i < dayNum; i++) {
c.add(Calendar.DATE, -1);
list.add(sdf.format(c.getTime()));
}
return list;

}

/**
* @param args
* @throws Exception
* void
*
*/
public static void main(String[] args) throws Exception {

// traversalMonthOrYear("2020-03-08","month");

System.out.println(traversalMonthOrYear("2020-03-08", "year"));

// System.out.println(getDAY_OF_MONTH("2020-03-08"));
// System.out.println(getDAY_OF_YEAR("2020-03-08"));
// System.out.println(getDAY_OF_YEAR("2019-12-25"));

}
}

 

举报

相关推荐

0 条评论