Коллекция классов инструментов Time | Расположение классов инструментов Java (1)

Java задняя часть
Коллекция классов инструментов Time | Расположение классов инструментов Java (1)

Это 27-й день моего участия в августовском испытании обновлений. Узнайте подробности события:Испытание августовского обновления


Статьи по Теме

Сводка классов инструментов Java:Класс инструментов Java


  • Эта статья будет дополняться обычной работой и использоваться как запись.
  • В обычной работе многие методы, связанные со временем, похожие в бизнес-сценариях, единообразно извлекаются в классы инструментов для использования.
  • Это удобно для последующего использования.
  • Надеюсь, эти инструменты будут вам полезны!
  • Обратите внимание~

Коллекция инструментов времени

①, получить время на неделю назад

  • Деловая сцена:

    • Необходимо подсчитать текущее время, чтобы отодвинуть список данных в течение недели.
  • public static String sevenDatysAgo(){
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            Calendar c = Calendar.getInstance();
            //过去七天
            c.setTime(new Date());
            c.add(Calendar.DATE, - 7);
            Date d = c.getTime();
            String day = format.format(d);
            day = day+" 00:00:00";
            return day;
    }
    
  • Демонстрационный эффект

  •     public static void main(String[] args) {
           //调这个方法就是返回当前时间的一周前的零点零分零秒
            System.out.println(sevenDatysAgo());
        }
    
  • image-20210825160228999.png

②, получить месяц несколько месяцев назад

  • Деловая сцена

    • Как правило, это связано со статистикой в ​​канун Нового года, вы можете использовать этот инструмент.
    • Например, сейчас статистика начинает отодвигать анализ данных на три месяца.
  • public static String[] getDateBeforeMonth(String dateKey, Integer length){
            String[] arrData = new String[2];
             try {
                //dateKey是传进来的日期,length是所需要前推的月份
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
                Calendar c = Calendar.getInstance();
                Date nowMonth = format.parse(dateKey);
                c.setTime(nowMonth);
                c.add(Calendar.MONTH, -length);
                Date m3 = c.getTime();
                String mon3 = format.format(m3);
                System.out.println("过去"+length+"个月:"+mon3);
                arrData[0] = mon3;
                arrData[1] = dateKey;
                return arrData;
                } catch (ParseException e) {
                e.printStackTrace();
             }
             return arrData;
    }
    
  • Демонстрационный эффект

  • public static void main(String[] args) {
            getDateBeforeMonth("2021-08",6);
    }
    
  • image-20210825160538186.png

③, час в минуту

  • Деловая сцена

    • Страница статистики используется для удобного просмотра.
  • public static int hoursTOminute(String date) {
            String[] dataArr = date.split("小时");
            int Hminute = Integer.parseInt(dataArr[0]) * 60;
            int Mminute = Integer.parseInt(dataArr[1].replace("分",""));
            int hoursToMinute = Hminute + Mminute;
            return hoursToMinute;
    }
    
  • Демонстрационный эффект

  • public static void main(String[] args) {
            String str = "3小时24分";
            System.out.println(str+":"+hoursTOminute(str));
    }
    
  • image-20210825160753642.png

④, получить дату N часов

  • Деловая сцена

    • Обычно он используется при обработке пакетов данных.
    • Например, поддельные данные заставляют страницу двигаться и очерчивать временные рамки!
  • 	/**
         * 得到n小时之后的日期
         */
        public static String getAfterHourCycleByHour(Date date, String days) {
            int daysInt = Integer.parseInt(days);
            Calendar canlendar = Calendar.getInstance();
            canlendar.setTime(date);
            canlendar.add(Calendar.HOUR, daysInt);
            SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String dateStr = sdfd.format(canlendar.getTime());
            return dateStr;
        }
    
  • Демонстрационный эффект

  • public class test {
        public static void main(String[] args) {
            Date date = new Date();
            String endTime = DateUtils.getAfterHourCycleByHour(date, "2");
            System.out.println(endTime);
        }
    }
    
  • image-20210825161207163.png

⑤ Рассчитать возраст человека по дате рождения

  • Деловая сцена

    • Это для расчета возраста человека на основе даты рождения, введенной другими.Сцена очень проста.
  • /**
         * 根据出生日期计算年龄
         *
         * @return 未来日期返回0
         */
        public static int getAge(Date birthDay) throws Exception {
            Calendar cal = Calendar.getInstance();
    
            if (cal.before(birthDay)) {
                return 0;
            }
    
            int yearNow = cal.get(Calendar.YEAR);
            int monthNow = cal.get(Calendar.MONTH);
            int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH);
            cal.setTime(birthDay);
    
            int yearBirth = cal.get(Calendar.YEAR);
            int monthBirth = cal.get(Calendar.MONTH);
            int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);
    
            int age = yearNow - yearBirth;
    
            if (monthNow <= monthBirth) {
                if (monthNow == monthBirth) {
                    if (dayOfMonthNow < dayOfMonthBirth) {
                        age--;
                    }
                } else {
                    age--;
                }
            }
    
            return age;
        }
    
  • Демонстрационный эффект

  • public class test {
        public static void main(String[] args) throws Exception{
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            Date birthDay = df.parse("1996-08-27");
            System.out.println(DateUtils.getAge(birthDay));
        }
    }
    
  • image-20210825161749121.png

⑥. Получите время начала недели

  • Деловая сцена

    • Статистика за неделю для анализа
  • public static Date getBeginDayOfWeek() {
            Date date = new Date();
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            int dayofweek = cal.get(Calendar.DAY_OF_WEEK);
            if (dayofweek == 1) {
                dayofweek += 7;
            }
            cal.add(Calendar.DATE, 2 - dayofweek);
            return getDayStartTime(cal.getTime());
    }
    
  • Демонстрационный эффект

  • public class test {
        public static void main(String[] args) throws Exception{
            System.out.println(DateUtils.getBeginDayOfWeek());
        }
    }
    
  • image-20210825162105249.png

Продолжение следует~


**Впереди долгий путь, и я обязательно буду его искать вдоль и поперёк~ **

Если вы думаете, что я блогеры хорошо пишу! Писать нелегко, пожалуйста, ставьте лайки, подписывайтесь и комментируйте, чтобы поощрять блоггеров ~ хахах