Что такое Хутул
Официальный сайт: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, так что вы можете их изучить. . .