!371 【轻量级pr】常用类增加 @see 和说明

Merge pull request !371 from dazer007/v5-dev
This commit is contained in:
Looly 2021-07-15 17:37:47 +00:00 committed by Gitee
commit 63b93948a6
11 changed files with 50 additions and 21 deletions

View File

@ -18,6 +18,7 @@ import java.text.SimpleDateFormat;
import java.time.Instant; import java.time.Instant;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.Year; import java.time.Year;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAccessor; import java.time.temporal.TemporalAccessor;
import java.util.Calendar; import java.util.Calendar;
@ -481,7 +482,7 @@ public class DateUtil extends CalendarUtil {
* 根据特定格式格式化日期 * 根据特定格式格式化日期
* *
* @param date 被格式化的日期 * @param date 被格式化的日期
* @param format 日期格式常用格式见 {@link DatePattern} * @param format 日期格式常用格式见 {@link DatePattern} {@link DatePattern#NORM_DATETIME_PATTERN}
* @return 格式化后的字符串 * @return 格式化后的字符串
*/ */
public static String format(Date date, String format) { public static String format(Date date, String format) {
@ -505,7 +506,7 @@ public class DateUtil extends CalendarUtil {
* 根据特定格式格式化日期 * 根据特定格式格式化日期
* *
* @param date 被格式化的日期 * @param date 被格式化的日期
* @param format {@link DatePrinter} {@link FastDateFormat} * @param format {@link DatePrinter} {@link FastDateFormat} {@link DatePattern#NORM_DATETIME_FORMAT}
* @return 格式化后的字符串 * @return 格式化后的字符串
*/ */
public static String format(Date date, DatePrinter format) { public static String format(Date date, DatePrinter format) {
@ -533,7 +534,7 @@ public class DateUtil extends CalendarUtil {
* 根据特定格式格式化日期 * 根据特定格式格式化日期
* *
* @param date 被格式化的日期 * @param date 被格式化的日期
* @param format {@link SimpleDateFormat} * @param format {@link SimpleDateFormat} {@link DatePattern#NORM_DATETIME_FORMATTER}
* @return 格式化后的字符串 * @return 格式化后的字符串
* @since 5.0.0 * @since 5.0.0
*/ */
@ -541,6 +542,8 @@ public class DateUtil extends CalendarUtil {
if (null == format || null == date) { if (null == format || null == date) {
return null; return null;
} }
/// java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: YearOfEra
/// return format.format(date.toInstant());
return TemporalAccessorUtil.format(date.toInstant(), format); return TemporalAccessorUtil.format(date.toInstant(), format);
} }

View File

@ -373,7 +373,7 @@ public class LocalDateTimeUtil {
* 格式化日期时间为指定格式 * 格式化日期时间为指定格式
* *
* @param date {@link LocalDate} * @param date {@link LocalDate}
* @param formatter 日期格式化器预定义的格式见{@link DateTimeFormatter} * @param formatter 日期格式化器预定义的格式见{@link DateTimeFormatter}; 常量如 {@link DatePattern#NORM_DATE_FORMATTER}, {@link DatePattern#NORM_DATETIME_FORMATTER}
* @return 格式化后的字符串 * @return 格式化后的字符串
* @since 5.3.10 * @since 5.3.10
*/ */
@ -385,7 +385,7 @@ public class LocalDateTimeUtil {
* 格式化日期时间为指定格式 * 格式化日期时间为指定格式
* *
* @param date {@link LocalDate} * @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 格式化后的字符串 * @return 格式化后的字符串
* @since 5.3.10 * @since 5.3.10
*/ */

View File

@ -148,7 +148,7 @@ public class Ipv4Util {
/** /**
* 根据ip地址(xxx.xxx.xxx.xxx)计算出long型的数据 * 根据ip地址(xxx.xxx.xxx.xxx)计算出long型的数据
* * 方法别名inet_aton
* @param strIP IP V4 地址 * @param strIP IP V4 地址
* @return long值 * @return long值
*/ */
@ -160,7 +160,7 @@ public class Ipv4Util {
/** /**
* 根据 ip/掩码位 计算IP段的起始IP字符串型 * 根据 ip/掩码位 计算IP段的起始IP字符串型
* * 方法别名inet_ntoa
* @param ip 给定的IP如218.240.38.69 * @param ip 给定的IP如218.240.38.69
* @param maskBit 给定的掩码位如30 * @param maskBit 给定的掩码位如30
* @return 起始IP的字符串表示 * @return 起始IP的字符串表示

View File

@ -2,7 +2,7 @@ package cn.hutool.core.text;
/** /**
* 常用字符常量 * 常用字符常量
* * @see StrPool
* @author looly * @author looly
* @since 5.6.3 * @since 5.6.3
*/ */

View File

@ -4266,7 +4266,7 @@ public class CharSequenceUtil {
/** /**
* conjunction 为分隔符将多个对象转换为字符串 * conjunction 为分隔符将多个对象转换为字符串
* *
* @param conjunction 分隔符 * @param conjunction 分隔符 {@link StrPool#COMMA}
* @param objs 数组 * @param objs 数组
* @return 连接后的字符串 * @return 连接后的字符串
* @see ArrayUtil#join(Object, CharSequence) * @see ArrayUtil#join(Object, CharSequence)
@ -4278,8 +4278,8 @@ public class CharSequenceUtil {
/** /**
* conjunction 为分隔符将多个对象转换为字符串 * conjunction 为分隔符将多个对象转换为字符串
* *
* @param <T> 元素类型 * @param <T> 元素类型
* @param conjunction 分隔符 * @param conjunction 分隔符 {@link StrPool#COMMA}
* @param iterable 集合 * @param iterable 集合
* @return 连接后的字符串 * @return 连接后的字符串
* @see CollUtil#join(Iterable, CharSequence) * @see CollUtil#join(Iterable, CharSequence)
@ -4301,7 +4301,7 @@ public class CharSequenceUtil {
if (StrUtil.isBlank(value)) { if (StrUtil.isBlank(value)) {
return false; return false;
} }
for (int i = value.length(); --i >= 0; ) { for (int i = value.length(); --i >= 0;) {
if (false == matcher.match(value.charAt(i))) { if (false == matcher.match(value.charAt(i))) {
return false; return false;
} }

View File

@ -4,6 +4,7 @@ import cn.hutool.core.util.XmlUtil;
/** /**
* 常用字符串常量定义 * 常用字符串常量定义
* @see CharPool
* *
* @author looly * @author looly
* @since 5.6.3 * @since 5.6.3

View File

@ -7,6 +7,8 @@ public class NumberChineseFormatterTest {
@Test @Test
public void formatTest() { public void formatTest() {
String f0 = NumberChineseFormatter.format(50008000, false);
Assert.assertEquals("五千万零八千", f0);
String f1 = NumberChineseFormatter.format(10889.72356, false); String f1 = NumberChineseFormatter.format(10889.72356, false);
Assert.assertEquals("一万零八百八十九点七二", f1); Assert.assertEquals("一万零八百八十九点七二", f1);
f1 = NumberChineseFormatter.format(12653, false); f1 = NumberChineseFormatter.format(12653, false);

View File

@ -13,14 +13,15 @@ import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalTime; import java.time.LocalTime;
import java.time.format.DateTimeFormatter; 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.Locale;
import java.util.Objects; import java.util.Objects;
import java.util.TimeZone; 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;
/** /**
* 时间工具单元测试<br> * 时间工具单元测试<br>
@ -894,6 +895,17 @@ public class DateUtilTest {
DateUtil.parse("2020-12-23", DatePattern.PURE_DATE_PATTERN); 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 @Test
public void formatNormDateTimeFormatterTest(){ public void formatNormDateTimeFormatterTest(){
String format = DateUtil.format(DateUtil.parse("2021-07-14 10:05:38"), DatePattern.NORM_DATETIME_FORMATTER); String format = DateUtil.format(DateUtil.parse("2021-07-14 10:05:38"), DatePattern.NORM_DATETIME_FORMATTER);

View File

@ -26,6 +26,10 @@ import java.util.List;
* FTP客户端封装<br> * FTP客户端封装<br>
* 此客户端基于Apache-Commons-Net * 此客户端基于Apache-Commons-Net
* *
* 常见搭建ftp的工具有
* 1filezila server ;根目录一般都是空
* 2linux vsftpd ; 使用的 系统用户的目录这里往往都是不是根目录/home/ftpuser/ftp
*
* @author looly * @author looly
* @since 4.1.8 * @since 4.1.8
*/ */

View File

@ -28,7 +28,8 @@ import java.util.HashMap;
/** /**
* 基于Zxing的二维码工具类 * 基于Zxing的二维码工具类
* * 参见二维码网站
* <p>https://cli.im/text</p>
* @author looly * @author looly
* @since 4.0.2 * @since 4.0.2
*/ */

View File

@ -35,16 +35,22 @@ public class QrCodeUtilTest {
// 背景色透明 // 背景色透明
config.setBackColor(null); config.setBackColor(null);
config.setErrorCorrection(ErrorCorrectionLevel.H); 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 @Test
@Ignore @Ignore
public void generateWithLogoTest() { 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(// QrCodeUtil.generate(//
"http://hutool.cn/", // "http://hutool.cn/", //
QrConfig.create().setImg("e:/pic/face.jpg"), // QrConfig.create().setImg(icon), //
FileUtil.file("e:/qrcodeWithLogo.jpg")); FileUtil.file(targetPath));
} }
@Test @Test