DateUtil.parse适配6位毫秒格式

This commit is contained in:
Looly
2023-06-29 17:07:34 +08:00
parent 161edefaf2
commit d494e001b6
5 changed files with 47 additions and 5 deletions

View File

@@ -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, '+')) {

View File

@@ -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、无法识别类型默认按照扩展名识别

View File

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