Hutool 39 New May 2026
The already‑excellent DateUtil now supports parse with fallback patterns. No more ParseException headaches:
// Tries multiple patterns automatically
Date date = DateUtil.parseAuto("2024-03-15", "yyyy/MM/dd", "dd-MM-yyyy");
And for the cron‑lovers among us: DateUtil.cronNext() predicts the next execution time directly.
The Hutool project welcomes contributions. For the next release (M40), they are seeking help with: hutool 39 new
To contribute:
Before (plain JDK):
List<String> lines = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader("data.txt")))
String line;
while ((line = br.readLine()) != null)
if (line.trim().length() > 0)
lines.add(line.toUpperCase());
catch (IOException e)
e.printStackTrace();
After (Hutool 0.39):
List<String> lines = FileUtil.readLines("data.txt", "UTF-8")
.stream()
.filter(StrUtil::isNotBlank)
.map(String::toUpperCase)
.collect(Collectors.toList());
No catch, no while, no null checks.
If you are using Maven, simply update your pom.xml:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.39</version>
</dependency>
If you are using Gradle:
implementation 'cn.hutool:hutool-all:5.8.39'