This commit is contained in:
Looly
2021-04-10 20:35:07 +08:00
parent 1edbc0de80
commit dbcbf53bca
5 changed files with 58 additions and 7 deletions

View File

@@ -822,8 +822,12 @@ public class DateUtil extends CalendarUtil {
if (length == DatePattern.UTC_PATTERN.length() - 4) {
// 格式类似2018-09-13T05:34:31Z-4表示减去4个单引号的长度
return parse(utcString, DatePattern.UTC_FORMAT);
} else if (length == DatePattern.UTC_MS_PATTERN.length() - 4) {
// 格式类似2018-09-13T05:34:31.999Z-4表示减去4个单引号的长度
}
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) {
return parse(utcString, DatePattern.UTC_MS_FORMAT);
}
} else {

View File

@@ -559,6 +559,23 @@ public class DateUtilTest {
Assert.assertEquals("2018-09-13 13:34:39", dateStr);
}
@Test
public void parseUTCTest2(){
// issue1503@Github
// 检查不同毫秒长度都可以正常匹配
String utcTime="2021-03-30T12:56:51.3Z";
DateTime parse = DateUtil.parseUTC(utcTime);
Assert.assertEquals("2021-03-30 12:56:51", parse.toString());
utcTime="2021-03-30T12:56:51.34Z";
parse = DateUtil.parseUTC(utcTime);
Assert.assertEquals("2021-03-30 12:56:51", parse.toString());
utcTime="2021-03-30T12:56:51.345Z";
parse = DateUtil.parseUTC(utcTime);
Assert.assertEquals("2021-03-30 12:56:51", parse.toString());
}
@Test
public void parseCSTTest(){
String dateStr = "Wed Sep 16 11:26:23 CST 2009";