Сверхмощный отечественный Java-инструмент Hutool (не пожалеете)

Java
Сверхмощный отечественный Java-инструмент Hutool (не пожалеете)

Что такое Хутул

Официальный сайт:hutool.cn/

  • Hutool — это небольшая и полная библиотека классов инструментов Java, инкапсулированная статическими методами для снижения затрат на изучение связанных API, повышения эффективности работы, придания Java элегантности функциональных языков и придания языку Java «сладости».

  • Инструменты и методы в Hutool являются результатом кропотливой работы каждого пользователя.Он охватывает все аспекты лежащего в основе кода Java-разработки.Это не только мощный инструмент для решения небольших проблем при разработке крупномасштабных проектов, но и ответственность за эффективность в маломасштабных проектах;

  • Hutool является удобной заменой пакета "util" в проекте. Он экономит время разработчиков на инкапсуляцию общих классов и общих методов инструментов в проекте, заставляет разработчиков сосредоточиться на бизнесе и может максимально избежать ошибок, вызванных несовершенной инкапсуляцией. степень.

Начало работы и установка

Maven

Добавьте следующее в зависимости pom.xml проекта:

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.5.8</version>
</dependency>

Gradle

compile 'cn.hutool:hutool-all:5.5.8'

не-Maven проекты

Нажмите на любую из ссылок ниже, чтобы скачатьhutool-all-X.X.X.jarТолько что:

Обратите внимание, что Hutool 5.x поддерживает JDK8+ и не тестировался на платформе Android, поэтому он не может гарантировать, что все классы или методы инструментов будут доступны. Если в вашем проекте используется JDK7, используйте версию Hutool 4.x.

Скомпилируйте и установите

Посетите домашнюю страницу Hutool Gitee:git ee.com/Oolly/Ооооооооооооооооооооооооооооооооооооооооооооооооо...Загрузите весь исходный код проекта (ветвь v5-master или v5-dev) и войдите в каталог проекта Hutool для выполнения:

./hutool.sh installCopy to clipboardErrorCopied

Затем вы можете использовать Maven для импорта.

Содержит компоненты

Базовый класс инструментов Java, который инкапсулирует методы JDK, такие как файлы, потоки, шифрование и дешифрование, транскодирование, регуляризация, многопоточность и XML для формирования различных классов инструментов Util, и предоставляет следующие компоненты:

модуль вводить
hutool-aop Инкапсуляция динамического прокси-сервера JDK, обеспечивающая поддержку аспектов без IOC
hutool-bloomFilter Фильтрация Блума, которая обеспечивает некоторую фильтрацию Блума алгоритмов хеширования.
hutool-cache Простая реализация кэша
hutool-core Core, включая операции Bean, даты, различные утилиты и т. д.
hutool-cron Модуль задач синхронизации, предоставляющий задачи синхронизации, такие как выражения Crontab.
hutool-crypto Модуль шифрования и дешифрования, обеспечивающий инкапсуляцию симметричного, асимметричного и дайджест-алгоритма.
hutool-db Обработка данных после инкапсуляции JDBC на основе идеи ActiveRecord
hutool-dfa Поиск по нескольким ключевым словам на основе модели DFA
hutool-extra Модули расширения, инкапсулирующие третьи стороны (движок шаблонов, электронная почта, сервлет, QR-код, эмодзи, FTP, сегментация слов и т. д.)
hutool-http Инкапсуляция клиента HTTP на основе HttpUrlConnection
hutool-log Бревенчатый фасад, который автоматически идентифицирует бревенчатую реализацию
hutool-script Инкапсуляция выполнения скрипта, например Javascript
hutool-setting Более мощный файл конфигурации настроек и пакет свойств
hutool-system Инкапсуляция вызова системных параметров (информация JVM и т. д.)
hutool-json Реализация JSON
hutool-captcha Реализация кода подтверждения изображения
hutool-poi Упаковка для Excel и Word в POI
hutool-socket Инкапсуляция сокетов NIO и AIO на основе Java

Каждый модуль можно импортировать отдельно по мере необходимости или путем импортаhutool-allспособ импортировать все модули.

Инструмент даты и времени — DateUtil

конвертировать

Преобразование между датой, длинной, календарем

//当前时间
Date date = DateUtil.date();
//当前时间
Date date2 = DateUtil.date(Calendar.getInstance());
//当前时间
Date date3 = DateUtil.date(System.currentTimeMillis());
//当前时间字符串,格式:yyyy-MM-dd HH:mm:ss
String now = DateUtil.now();
//当前日期字符串,格式:yyyy-MM-dd
String today= DateUtil.today();

Строка на сегодняшний день

DateUtil.parseМетод автоматически распознает некоторые распространенные форматы, в том числе:

  • yyyy-MM-dd HH:mm:ss

  • yyyy/MM/dd HH:mm:ss

  • yyyy.MM.dd HH:mm:ss

  • гггг год ММ месяц дд день ЧЧ час мм минута сс секунда

  • yyyy-MM-dd

  • yyyy/MM/dd

  • yyyy.MM.dd

  • HH:mm:ss

  • ЧЧ часы мм минуты сс секунды

  • yyyy-MM-dd HH:mm

  • yyyy-MM-dd HH:mm:ss.SSS

  • yyyyMMddHHmmss

  • yyyyMMddHHmmssSSS

  • yyyyMMdd

  • EEE, dd MMM yyyy HH:mm:ss z

  • EEE MMM dd HH:mm:ss zzz yyyy

  • yyyy-MM-dd'T'HH:mm:ss'Z'

  • yyyy-MM-dd'T'HH:mm:ss.SSS'Z'

  • yyyy-MM-dd'T'HH:mm:ssZ

  • yyyy-MM-dd'T'HH:mm:ss.SSSZ

String dateStr = "2017-03-01";
Date date = DateUtil.parse(dateStr);

Мы также можем преобразовать, используя собственный формат даты:

String dateStr = "2017-03-01";
Date date = DateUtil.parse(dateStr, "yyyy-MM-dd");

форматированный вывод даты

String dateStr = "2017-03-01";
Date date = DateUtil.parse(dateStr);

//结果 2017/03/01
String format = DateUtil.format(date, "yyyy/MM/dd");

//常用格式的格式化,结果:2017-03-01
String formatDate = DateUtil.formatDate(date);

//结果:2017-03-01 00:00:00
String formatDateTime = DateUtil.formatDateTime(date);

//结果:00:00:00
String formatTime = DateUtil.formatTime(date);

Получить часть объекта Date

Date date = DateUtil.date();
//获得年的部分
DateUtil.year(date);
//获得月份,从0开始计数
DateUtil.month(date);
//获得月份枚举
DateUtil.monthEnum(date);
//.....

время начала и окончания

Иногда нам нужно получить время начала, время окончания каждого дня, время начала и окончания каждого месяца и т. д. DateUtil также предоставляет связанные методы:

String dateStr = "2017-03-01 22:33:23";
Date date = DateUtil.parse(dateStr);

//一天的开始,结果:2017-03-01 00:00:00
Date beginOfDay = DateUtil.beginOfDay(date);

//一天的结束,结果:2017-03-01 23:59:59
Date endOfDay = DateUtil.endOfDay(date);

смещение даты и времени

Указатель смещения даты или времени добавляет или вычитает минуты, часы, дни и т. д. к дате для достижения цели изменения даты. Hutool также сделал много упаковки для него.

String dateStr = "2017-03-01 22:33:23";
Date date = DateUtil.parse(dateStr);

//结果:2017-03-03 22:33:23
Date newDate = DateUtil.offset(date, DateField.DAY_OF_MONTH, 2);

//常用偏移,结果:2017-03-04 22:33:23
DateTime newDate2 = DateUtil.offsetDay(date, 3);

//常用偏移,结果:2017-03-01 19:33:23
DateTime newDate3 = DateUtil.offsetHour(date, -3);Copy to clipboardErrorCopied

Предусмотрены упрощенные методы смещения для текущего времени (например, вчера, на прошлой неделе, в прошлом месяце и т. д.):

//昨天
DateUtil.yesterday()
//明天
DateUtil.tomorrow()
//上周
DateUtil.lastWeek()
//下周
DateUtil.nextWeek()
//上个月
DateUtil.lastMonth()
//下个月
DateUtil.nextMonth()Copy to clipboardErrorCopied

разница даты и времени

Иногда нам нужно вычислить разницу во времени между двумя датами (дни, часы и т.д.), Hutool инкапсулирует такие методы как между методами:

String dateStr1 = "2017-03-01 22:33:23";
Date date1 = DateUtil.parse(dateStr1);

String dateStr2 = "2017-04-01 23:33:23";
Date date2 = DateUtil.parse(dateStr2);

//相差一个月,31天
long betweenDay = DateUtil.between(date1, date2, DateUnit.DAY);Copy to clipboardErrorCopied

формат разницы во времени

Иногда мы хотим увидеть разницу во времени, которая легко читается, например, XX дней XX часов XX минут XX секунд, в это время используйтеDateUtil.formatBetweenметод:

//Level.MINUTE表示精确到分
String formatBetween = DateUtil.formatBetween(between, Level.MINUTE);
//输出:31天1小时
Console.log(formatBetween);Copy to clipboardErrorCopied

Знаки зодиака и знаки зодиака

// "摩羯座"
String zodiac = DateUtil.getZodiac(Month.JANUARY.getValue(), 19);

// "狗"
String chineseZodiac = DateUtil.getChineseZodiac(1994);Copy to clipboardErrorCopied

разное

//年龄
DateUtil.ageOfNow("1990-01-30");

//是否闰年
DateUtil.isLeapYear(2017);Copy to clipboardErrorCopied

В конце концов

Все вышеперечисленное скопировано с официального сайта, на официальном сайте очень подробно описаны все API, так что вы можете их изучить. . .