1

java时间小工具_茉莉花茶没有花的技术博客_51CTO博客

 1 year ago
source link: https://blog.51cto.com/xihan/5434532
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

java时间小工具

原创

* 获取当月的工作日(国家规定补班的无法分辨,仅限周末和国家规定节假日除外)

* @author xujinbo

public class WorkDaysUtil {

   public static  List<Date> getWorkDates(int year, int month) {

       List<Date> dates = new ArrayList();

       Calendar cal = Calendar.getInstance();

       cal.set(Calendar.YEAR, year);

       cal.set(Calendar.MONTH, month - 1);

       cal.set(Calendar.DATE, 1);

       while (cal.get(Calendar.YEAR) == year &&

               cal.get(Calendar.MONTH) < month) {

           int day = cal.get(Calendar.DAY_OF_WEEK);

           if (!(day == Calendar.SUNDAY || day == Calendar.SATURDAY)) {

               Date clone = (Date)cal.getTime().clone();

               dates.add(clone);

           cal.add(Calendar.DATE, 1);

       return dates;

    * 获取当前年

    * @return

   public static int getYear(){

       Calendar calendar = Calendar.getInstance();

       int year = calendar.get(Calendar.YEAR);

       return year;

    * 获取当前月

    * @return

   public static int getMonth(){

       Calendar calendar = Calendar.getInstance();

       //记得要+1

       int month = calendar.get(Calendar.MONTH) + 1;

       return month;

    * 改变date格式

    * @param list

    * @return

   public static Set<String> makeDateToString(List<String> list){

       Set<String> set = new HashSet<>();

       for (String date:list){

           Date time = new Date(date);

           SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

           String dateFormat = sdf.format(time);

           set.add(dateFormat);

       return  set;

    * Date 当日最大时间

    * @param date

    * @return

   public  static  Date getDateMaxOrMin(Date date,String type){

       Calendar calendar = DateUtils.toCalendar(date);

       if("MAX".equals(type)) {

           calendar.set(Calendar.HOUR_OF_DAY, calendar.getActualMaximum(Calendar.HOUR_OF_DAY));

           calendar.set(Calendar.MINUTE, calendar.getActualMaximum(Calendar.MINUTE));

           calendar.set(Calendar.SECOND, calendar.getActualMaximum(Calendar.SECOND));

           date = calendar.getTime();

       else{

           calendar.set(Calendar.HOUR_OF_DAY, calendar.getActualMinimum(Calendar.HOUR_OF_DAY));

           calendar.set(Calendar.MINUTE, calendar.getActualMinimum(Calendar.MINUTE));

           calendar.set(Calendar.SECOND, calendar.getActualMinimum(Calendar.SECOND));

           date = calendar.getTime();

       return date;

    * Date转为LocalDate

    * @param date

    * @return

   public static LocalDate dateTOLocalDate(Date date){

       LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

       return localDate;

   //获取目标年份中目标月的第一天的开始时间

   public static Date getFirstDayOfMonth(String year,String month) {

       final Calendar cal = Calendar.getInstance();

       cal.set(Calendar.YEAR,Integer.parseInt(year));

       cal.set(Calendar.MONTH,Integer.parseInt(month)-1);

       cal.set(Calendar.HOUR_OF_DAY,0);

       cal.set(Calendar.MINUTE,0);

       cal.set(Calendar.SECOND,0);

       //获取目标月和目标年份的当月第一天时间

       final int start =Calendar.YEAR;

       cal.set(Calendar.DAY_OF_MONTH, start);

       return cal.getTime();

    * 获得本月第一天

    * @return

   public static String getMonthfirstDay(){

       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

       Date date = new Date();

       Calendar calendar = new GregorianCalendar();

       calendar.setTime(date);

       calendar.add(Calendar.MONTH, 0);

       calendar.set(Calendar.DAY_OF_MONTH, 1);

       String firstDay = sdf.format(calendar.getTime());

       return firstDay;

    * //获得本月最后一天

    * @return

   public static String getMonthLastDay(){

       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

       Date date = new Date();

       Calendar calendar = new GregorianCalendar();

       calendar.setTime(date);

       calendar.add(Calendar.MONTH, 0);

       calendar.set(Calendar.DAY_OF_MONTH, 1);

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

       String lastDay = sdf.format(calendar.getTime());

       return lastDay;


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK