!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.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);
}

View File

@ -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
*/

View File

@ -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的字符串表示

View File

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

View File

@ -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 <T> 元素类型
* @param conjunction 分隔符
* @param <T> 元素类型
* @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;
}

View File

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

View File

@ -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);

View File

@ -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;
/**
* 时间工具单元测试<br>
@ -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);

View File

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

View File

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

View File

@ -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