mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
DateUtil.parse适配6位毫秒格式
This commit is contained in:
parent
161edefaf2
commit
d494e001b6
@ -8,6 +8,7 @@
|
||||
* 【core 】 list 为空时,CollUtil.max等返回null而非异常(pr#1027@Gitee)
|
||||
* 【poi 】 ExcelReader.getWriter逻辑变更,当从非文件读取时,获取sheet,而非空表格。
|
||||
* 【core 】 Ipv4Util 新增方法:检测指定 IP 地址是否匹配通配符(pr#3171@Github)
|
||||
* 【core 】 DateUtil.parse适配6位毫秒格式(issue#I7H34N@Gitee)
|
||||
|
||||
### 🐞Bug修复
|
||||
* 【core 】 修复MapUtil工具使用filter方法构造传入参数结果问题(issue#3162@Github)
|
||||
|
@ -856,7 +856,8 @@ public class DateUtil extends CalendarUtil {
|
||||
final int patternLength = DatePattern.UTC_MS_PATTERN.length();
|
||||
// 格式类似:2018-09-13T05:34:31.999Z,-4表示减去4个单引号的长度
|
||||
// -4 ~ -6范围表示匹配毫秒1~3位的情况
|
||||
if (length <= patternLength - 4 && length >= patternLength - 6) {
|
||||
if (length <= patternLength && length >= patternLength - 6) {
|
||||
// issue#I7H34N,支持最多6位毫秒
|
||||
return parse(utcString, DatePattern.UTC_MS_FORMAT);
|
||||
}
|
||||
} else if (StrUtil.contains(utcString, '+')) {
|
||||
|
@ -78,7 +78,7 @@ public class FileTypeUtil {
|
||||
/**
|
||||
* 根据文件流的头部信息获得文件类型<br>
|
||||
* 注意此方法会读取头部一些bytes,造成此流接下来读取时缺少部分bytes<br>
|
||||
* 因此如果想服用此流,流需支持{@link InputStream#reset()}方法。
|
||||
* 因此如果想复用此流,流需支持{@link InputStream#reset()}方法。
|
||||
* @param in {@link InputStream}
|
||||
* @param isExact 是否精确匹配,如果为false,使用前64个bytes匹配,如果为true,使用前8192bytes匹配
|
||||
* @return 类型,文件的扩展名,未找到为{@code null}
|
||||
@ -93,7 +93,7 @@ public class FileTypeUtil {
|
||||
/**
|
||||
* 根据文件流的头部信息获得文件类型<br>
|
||||
* 注意此方法会读取头部64个bytes,造成此流接下来读取时缺少部分bytes<br>
|
||||
* 因此如果想服用此流,流需支持{@link InputStream#reset()}方法。
|
||||
* 因此如果想复用此流,流需支持{@link InputStream#reset()}方法。
|
||||
* @param in {@link InputStream}
|
||||
* @return 类型,文件的扩展名,未找到为{@code null}
|
||||
* @throws IORuntimeException 读取流引起的异常
|
||||
@ -105,7 +105,7 @@ public class FileTypeUtil {
|
||||
/**
|
||||
* 根据文件流的头部信息获得文件类型
|
||||
* 注意此方法会读取头部64个bytes,造成此流接下来读取时缺少部分bytes<br>
|
||||
* 因此如果想服用此流,流需支持{@link InputStream#reset()}方法。
|
||||
* 因此如果想复用此流,流需支持{@link InputStream#reset()}方法。
|
||||
*
|
||||
* <pre>
|
||||
* 1、无法识别类型默认按照扩展名识别
|
||||
@ -125,7 +125,7 @@ public class FileTypeUtil {
|
||||
/**
|
||||
* 根据文件流的头部信息获得文件类型
|
||||
* 注意此方法会读取头部一些bytes,造成此流接下来读取时缺少部分bytes<br>
|
||||
* 因此如果想服用此流,流需支持{@link InputStream#reset()}方法。
|
||||
* 因此如果想复用此流,流需支持{@link InputStream#reset()}方法。
|
||||
*
|
||||
* <pre>
|
||||
* 1、无法识别类型默认按照扩展名识别
|
||||
|
@ -1148,4 +1148,11 @@ public class DateUtilTest {
|
||||
final Calendar c = DateUtil.calendar(date);
|
||||
Assert.assertEquals(DateUtil.date(c), date);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void issueI7H34NTest() {
|
||||
final DateTime parse = DateUtil.parse("2019-10-22T09:56:03.000123Z");
|
||||
Assert.assertNotNull(parse);
|
||||
Assert.assertEquals("2019-10-22 09:56:03", parse.toString());
|
||||
}
|
||||
}
|
||||
|
33
hutool-json/src/test/java/cn/hutool/json/IssueI7GPGXTest.java
Executable file
33
hutool-json/src/test/java/cn/hutool/json/IssueI7GPGXTest.java
Executable file
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright (c) 2023 looly(loolly@aliyun.com)
|
||||
* Hutool is licensed under Mulan PSL v2.
|
||||
* You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||
* You may obtain a copy of Mulan PSL v2 at:
|
||||
* http://license.coscl.org.cn/MulanPSL2
|
||||
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
* See the Mulan PSL v2 for more details.
|
||||
*/
|
||||
|
||||
package cn.hutool.json;
|
||||
|
||||
import cn.hutool.core.lang.Pair;
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import org.junit.Test;
|
||||
|
||||
public class IssueI7GPGXTest {
|
||||
@Test
|
||||
public void toBeanTest() throws NoSuchMethodException {
|
||||
Pair<String, Boolean> hutoolPair = getHutoolPair();
|
||||
String a = JSONUtil.toJsonStr(hutoolPair);
|
||||
System.out.println(a);
|
||||
System.out.println("=====================================");
|
||||
Pair<String, Boolean> pair = JSONUtil.toBean(a, new TypeReference<Pair<String, Boolean>>() {}, false);
|
||||
System.out.println(JSONUtil.toJsonStr(pair));
|
||||
}
|
||||
|
||||
public static Pair<String, Boolean> getHutoolPair() {
|
||||
return new Pair<>("test1", true);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user