diff --git a/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java b/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java index 32daa37cf..61385e3d5 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java @@ -18,6 +18,7 @@ import java.text.SimpleDateFormat; import java.time.Instant; import java.time.LocalDateTime; import java.time.Year; +import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAccessor; import java.util.Calendar; @@ -481,7 +482,7 @@ public class DateUtil extends CalendarUtil { * 根据特定格式格式化日期 * * @param date 被格式化的日期 - * @param format 日期格式,常用格式见: {@link DatePattern} + * @param format 日期格式,常用格式见: {@link DatePattern} {@link DatePattern#NORM_DATETIME_PATTERN} * @return 格式化后的字符串 */ public static String format(Date date, String format) { @@ -505,7 +506,7 @@ public class DateUtil extends CalendarUtil { * 根据特定格式格式化日期 * * @param date 被格式化的日期 - * @param format {@link DatePrinter} 或 {@link FastDateFormat} + * @param format {@link DatePrinter} 或 {@link FastDateFormat} {@link DatePattern#NORM_DATETIME_FORMAT} * @return 格式化后的字符串 */ public static String format(Date date, DatePrinter format) { @@ -533,7 +534,7 @@ public class DateUtil extends CalendarUtil { * 根据特定格式格式化日期 * * @param date 被格式化的日期 - * @param format {@link SimpleDateFormat} + * @param format {@link SimpleDateFormat} {@link DatePattern#NORM_DATETIME_FORMATTER} * @return 格式化后的字符串 * @since 5.0.0 */ @@ -541,6 +542,8 @@ public class DateUtil extends CalendarUtil { if (null == format || null == date) { return null; } + /// java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: YearOfEra + /// return format.format(date.toInstant()); return TemporalAccessorUtil.format(date.toInstant(), format); } diff --git a/hutool-core/src/main/java/cn/hutool/core/date/LocalDateTimeUtil.java b/hutool-core/src/main/java/cn/hutool/core/date/LocalDateTimeUtil.java index a40065243..66ffb40f5 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/LocalDateTimeUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/LocalDateTimeUtil.java @@ -373,7 +373,7 @@ public class LocalDateTimeUtil { * 格式化日期时间为指定格式 * * @param date {@link LocalDate} - * @param formatter 日期格式化器,预定义的格式见:{@link DateTimeFormatter} + * @param formatter 日期格式化器,预定义的格式见:{@link DateTimeFormatter}; 常量如: {@link DatePattern#NORM_DATE_FORMATTER}, {@link DatePattern#NORM_DATETIME_FORMATTER} * @return 格式化后的字符串 * @since 5.3.10 */ @@ -385,7 +385,7 @@ public class LocalDateTimeUtil { * 格式化日期时间为指定格式 * * @param date {@link LocalDate} - * @param format 日期格式,类似于yyyy-MM-dd + * @param format 日期格式,类似于yyyy-MM-dd, 常量如 {@link DatePattern#NORM_DATE_PATTERN}, {@link DatePattern#NORM_DATETIME_PATTERN} * @return 格式化后的字符串 * @since 5.3.10 */ diff --git a/hutool-core/src/main/java/cn/hutool/core/net/Ipv4Util.java b/hutool-core/src/main/java/cn/hutool/core/net/Ipv4Util.java index 881670159..3b6ab8140 100644 --- a/hutool-core/src/main/java/cn/hutool/core/net/Ipv4Util.java +++ b/hutool-core/src/main/java/cn/hutool/core/net/Ipv4Util.java @@ -148,7 +148,7 @@ public class Ipv4Util { /** * 根据ip地址(xxx.xxx.xxx.xxx)计算出long型的数据 - * + * 方法别名:inet_aton * @param strIP IP V4 地址 * @return long值 */ @@ -160,7 +160,7 @@ public class Ipv4Util { /** * 根据 ip/掩码位 计算IP段的起始IP(字符串型) - * + * 方法别名:inet_ntoa * @param ip 给定的IP,如218.240.38.69 * @param maskBit 给定的掩码位,如30 * @return 起始IP的字符串表示 diff --git a/hutool-core/src/main/java/cn/hutool/core/text/CharPool.java b/hutool-core/src/main/java/cn/hutool/core/text/CharPool.java index 06b922a73..228f02209 100644 --- a/hutool-core/src/main/java/cn/hutool/core/text/CharPool.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/CharPool.java @@ -2,7 +2,7 @@ package cn.hutool.core.text; /** * 常用字符常量 - * + * @see StrPool * @author looly * @since 5.6.3 */ diff --git a/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java b/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java index 67cb78395..06b1dbebd 100644 --- a/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java @@ -4266,7 +4266,7 @@ public class CharSequenceUtil { /** * 以 conjunction 为分隔符将多个对象转换为字符串 * - * @param conjunction 分隔符 + * @param conjunction 分隔符 {@link StrPool#COMMA} * @param objs 数组 * @return 连接后的字符串 * @see ArrayUtil#join(Object, CharSequence) @@ -4278,8 +4278,8 @@ public class CharSequenceUtil { /** * 以 conjunction 为分隔符将多个对象转换为字符串 * - * @param 元素类型 - * @param conjunction 分隔符 + * @param 元素类型 + * @param conjunction 分隔符 {@link StrPool#COMMA} * @param iterable 集合 * @return 连接后的字符串 * @see CollUtil#join(Iterable, CharSequence) @@ -4301,7 +4301,7 @@ public class CharSequenceUtil { if (StrUtil.isBlank(value)) { return false; } - for (int i = value.length(); --i >= 0; ) { + for (int i = value.length(); --i >= 0;) { if (false == matcher.match(value.charAt(i))) { return false; } diff --git a/hutool-core/src/main/java/cn/hutool/core/text/StrPool.java b/hutool-core/src/main/java/cn/hutool/core/text/StrPool.java index 2a90f7879..743c4e474 100644 --- a/hutool-core/src/main/java/cn/hutool/core/text/StrPool.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/StrPool.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.XmlUtil; /** * 常用字符串常量定义 + * @see CharPool * * @author looly * @since 5.6.3 diff --git a/hutool-core/src/test/java/cn/hutool/core/convert/NumberChineseFormatterTest.java b/hutool-core/src/test/java/cn/hutool/core/convert/NumberChineseFormatterTest.java index 3fce2769c..21b5248ce 100644 --- a/hutool-core/src/test/java/cn/hutool/core/convert/NumberChineseFormatterTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/convert/NumberChineseFormatterTest.java @@ -7,6 +7,8 @@ public class NumberChineseFormatterTest { @Test public void formatTest() { + String f0 = NumberChineseFormatter.format(50008000, false); + Assert.assertEquals("五千万零八千", f0); String f1 = NumberChineseFormatter.format(10889.72356, false); Assert.assertEquals("一万零八百八十九点七二", f1); f1 = NumberChineseFormatter.format(12653, false); diff --git a/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java index 25bbedf22..0ea1d0f9b 100644 --- a/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java @@ -13,14 +13,15 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.LinkedHashSet; -import java.util.List; import java.util.Locale; import java.util.Objects; import java.util.TimeZone; +import java.util.List; +import java.util.ArrayList; +import java.util.Date; +import java.util.Calendar; +import java.util.LinkedHashSet; +import java.util.GregorianCalendar; /** * 时间工具单元测试
@@ -894,6 +895,17 @@ public class DateUtilTest { DateUtil.parse("2020-12-23", DatePattern.PURE_DATE_PATTERN); } + @Test + public void formatTest(){ + Calendar calendar = new GregorianCalendar(); + calendar.set(2021, Calendar.JULY, 14, 23, 59, 59); + Date date = new DateTime(calendar); + + Assert.assertEquals("2021-07-14 23:59:59", DateUtil.format(date, DatePattern.NORM_DATETIME_FORMATTER)); + Assert.assertEquals("2021-07-14 23:59:59", DateUtil.format(date, DatePattern.NORM_DATETIME_FORMAT)); + Assert.assertEquals("2021-07-14 23:59:59", DateUtil.format(date, DatePattern.NORM_DATETIME_PATTERN)); + } + @Test public void formatNormDateTimeFormatterTest(){ String format = DateUtil.format(DateUtil.parse("2021-07-14 10:05:38"), DatePattern.NORM_DATETIME_FORMATTER); diff --git a/hutool-extra/src/main/java/cn/hutool/extra/ftp/Ftp.java b/hutool-extra/src/main/java/cn/hutool/extra/ftp/Ftp.java index 67a0686b3..02c089cea 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/ftp/Ftp.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/ftp/Ftp.java @@ -26,6 +26,10 @@ import java.util.List; * FTP客户端封装
* 此客户端基于Apache-Commons-Net * + * 常见搭建ftp的工具有 + * 1、filezila server ;根目录一般都是空 + * 2、linux vsftpd ; 使用的 系统用户的目录,这里往往都是不是根目录,如:/home/ftpuser/ftp + * * @author looly * @since 4.1.8 */ diff --git a/hutool-extra/src/main/java/cn/hutool/extra/qrcode/QrCodeUtil.java b/hutool-extra/src/main/java/cn/hutool/extra/qrcode/QrCodeUtil.java index ac77808ca..ec0ca33d9 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/qrcode/QrCodeUtil.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/qrcode/QrCodeUtil.java @@ -28,7 +28,8 @@ import java.util.HashMap; /** * 基于Zxing的二维码工具类 - * + * 参见二维码网站: + *

https://cli.im/text

* @author looly * @since 4.0.2 */ diff --git a/hutool-extra/src/test/java/cn/hutool/extra/qrcode/QrCodeUtilTest.java b/hutool-extra/src/test/java/cn/hutool/extra/qrcode/QrCodeUtilTest.java index c1af336f5..78650e129 100644 --- a/hutool-extra/src/test/java/cn/hutool/extra/qrcode/QrCodeUtilTest.java +++ b/hutool-extra/src/test/java/cn/hutool/extra/qrcode/QrCodeUtilTest.java @@ -35,16 +35,22 @@ public class QrCodeUtilTest { // 背景色透明 config.setBackColor(null); config.setErrorCorrection(ErrorCorrectionLevel.H); - QrCodeUtil.generate("https://hutool.cn/", config, FileUtil.file("d:/qrcodeCustom.png")); + String path = FileUtil.isWindows() ? "d:/hutool/qrcodeCustom.png" : "~/Desktop/hutool/qrcodeCustom.png"; + if (!FileUtil.file(path).getParentFile().exists()) { + FileUtil.file(path).getParentFile().mkdirs(); + } + QrCodeUtil.generate("https://hutool.cn/", config, FileUtil.file(path)); } @Test @Ignore public void generateWithLogoTest() { + String icon = FileUtil.isWindows() ? "d:/hutool/pic/face.jpg" : "~/Desktop/hutool/pic/face.jpg"; + String targetPath = FileUtil.isWindows() ? "d:/hutool/qrcodeWithLogo.jpg" : "~/Desktop/hutool/qrcodeWithLogo.jpg"; QrCodeUtil.generate(// "http://hutool.cn/", // - QrConfig.create().setImg("e:/pic/face.jpg"), // - FileUtil.file("e:/qrcodeWithLogo.jpg")); + QrConfig.create().setImg(icon), // + FileUtil.file(targetPath)); } @Test