{"record":{"id":"2aca171159352c27","repo":"chinabugotech/hutool","slug":"invalid-format","errorCode":null,"errorMessage":"Invalid format: [{}]","messagePattern":"Invalid format: \\[(.+?)\\]","errorType":"exception","errorClass":"DateException","httpStatus":null,"severity":"error","filePath":"hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java","lineNumber":903,"sourceCode":"\t\tif (StrUtil.contains(iso8601String, 'Z')) {\n\t\t\tif (length == DatePattern.UTC_PATTERN.length() - 4) {\n\t\t\t\t// 格式类似：2018-09-13T05:34:31Z，-4表示减去4个单引号的长度\n\t\t\t\treturn parse(iso8601String, DatePattern.UTC_FORMAT);\n\t\t\t}\n\n\t\t\tfinal int patternLength = DatePattern.UTC_MS_PATTERN.length();\n\t\t\t// 格式类似：2018-09-13T05:34:31.999Z，-4表示减去4个单引号的长度\n\t\t\t// -4 ~ -6范围表示匹配毫秒1~3位的情况\n\t\t\tif (length <= patternLength && length >= patternLength - 6) {\n\t\t\t\t// issue#I7H34N，支持最多6位毫秒\n\t\t\t\treturn parse(iso8601String, DatePattern.UTC_MS_FORMAT);\n\t\t\t}\n\t\t} else if (StrUtil.contains(iso8601String, '+')) {\n\t\t\t// 去除类似2019-06-01T19:45:43 +08:00加号前的空格\n\t\t\tiso8601String = iso8601String.replace(\" +\", \"+\");\n\t\t\tfinal String zoneOffset = StrUtil.subAfter(iso8601String, '+', true);\n\t\t\tif (StrUtil.isBlank(zoneOffset)) {\n\t\t\t\tthrow new DateException(\"Invalid format: [{}]\", iso8601String);\n\t\t\t}\n\t\t\tif (false == StrUtil.contains(zoneOffset, ':')) {\n\t\t\t\t// +0800转换为+08:00\n\t\t\t\tif (zoneOffset.length() < 2) {\n\t\t\t\t\tthrow new DateException(\"Invalid format: [{}]\", iso8601String);\n\t\t\t\t}\n\t\t\t\tfinal String pre = StrUtil.subBefore(iso8601String, '+', true);\n\t\t\t\tiso8601String = pre + \"+\" + zoneOffset.substring(0, 2) + \":\" + \"00\";\n\t\t\t}\n\n\t\t\tif (StrUtil.contains(iso8601String, CharUtil.DOT)) {\n\t\t\t\t// 带毫秒，格式类似：2018-09-13T05:34:31.999+08:00\n\t\t\t\tiso8601String = normalizeMillSeconds(iso8601String, \".\", \"+\");\n\t\t\t\treturn parse(iso8601String, DatePattern.UTC_MS_WITH_XXX_OFFSET_FORMAT);\n\t\t\t} else if (iso8601String.length() == 22 && StrUtil.count(iso8601String, ':') == 2) {\n\t\t\t\t// 精确到分钟，格式类似：2025-07-28T20:00+08:00\n\t\t\t\treturn parse(iso8601String, DatePattern.UTC_SIMPLE_MINUTE_WITH_XXX_OFFSET_FORMAT);\n\t\t\t} else {","sourceCodeStart":885,"sourceCodeEnd":921,"githubUrl":"https://github.com/chinabugotech/hutool/blob/8870454b2a0c29cc6ffd31dcf5667c8ceb2fc442/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java#L885-L921","documentation":"Error \"Invalid format: [{}]\" thrown in chinabugotech/hutool.","triggerScenarios":"Thrown at hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java:903 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Provide a date format pattern matching the input string, e.g. \"yyyy-MM-dd HH:mm:ss\".","Check that the pattern uses valid pattern letters (y, M, d, H, m, s) and matches the input length.","Use DateUtil.parse without a pattern to auto-detect common formats."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"8870454b2a0c29cc6ffd31dcf5667c8ceb2fc442","analyzedAt":"2026-08-14T04:01:12.892Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}