{"record":{"id":"01bdddf5713289cd","repo":"GoogleContainerTools/jib","slug":"container-creationtime-should-be-an-iso-8601-da-01bddd","errorCode":null,"errorMessage":"<container><creationTime> should be an ISO 8601 date-time (see DateTimeFormatter.ISO_DATE_TIME) or a special keyword (\"EPOCH\", \"USE_CURRENT_TIMESTAMP\"): <invalidCreationTime>","messagePattern":"<container><creationTime> should be an ISO 8601 date-time \\(see DateTimeFormatter\\.ISO_DATE_TIME\\) or a special keyword \\(\"EPOCH\", \"USE_CURRENT_TIMESTAMP\"\\): <invalidCreationTime>","errorType":"exception","errorClass":"MojoExecutionException","httpStatus":null,"severity":"error","filePath":"jib-maven-plugin/src/main/java/com/google/cloud/tools/jib/maven/BuildImageMojo.java","lineNumber":152,"sourceCode":"      throw new MojoExecutionException(\n          \"<from><platforms> contains a platform configuration that is missing required values or has invalid values: \"\n              + ex.getMessage()\n              + \": \"\n              + ex.getInvalidPlatform(),\n          ex);\n    } catch (InvalidContainerVolumeException ex) {\n      throw new MojoExecutionException(\n          \"<container><volumes> is not an absolute Unix-style path: \" + ex.getInvalidVolume(), ex);\n\n    } catch (InvalidFilesModificationTimeException ex) {\n      throw new MojoExecutionException(\n          \"<container><filesModificationTime> should be an ISO 8601 date-time (see \"\n              + \"DateTimeFormatter.ISO_DATE_TIME) or special keyword \\\"EPOCH_PLUS_SECOND\\\": \"\n              + ex.getInvalidFilesModificationTime(),\n          ex);\n\n    } catch (InvalidCreationTimeException ex) {\n      throw new MojoExecutionException(\n          \"<container><creationTime> should be an ISO 8601 date-time (see \"\n              + \"DateTimeFormatter.ISO_DATE_TIME) or a special keyword (\\\"EPOCH\\\", \"\n              + \"\\\"USE_CURRENT_TIMESTAMP\\\"): \"\n              + ex.getInvalidCreationTime(),\n          ex);\n\n    } catch (JibPluginExtensionException ex) {\n      String extensionName = ex.getExtensionClass().getName();\n      throw new MojoExecutionException(\n          \"error running extension '\" + extensionName + \"': \" + ex.getMessage(), ex);\n\n    } catch (IncompatibleBaseImageJavaVersionException ex) {\n      throw new MojoExecutionException(\n          HelpfulSuggestions.forIncompatibleBaseImageJavaVersionForMaven(\n              ex.getBaseImageMajorJavaVersion(), ex.getProjectMajorJavaVersion()),\n          ex);\n\n    } catch (InvalidImageReferenceException ex) {","sourceCodeStart":134,"sourceCodeEnd":170,"githubUrl":"https://github.com/GoogleContainerTools/jib/blob/fb949e2676afbbd7dd7a1ef61e20251931325654/jib-maven-plugin/src/main/java/com/google/cloud/tools/jib/maven/BuildImageMojo.java#L134-L170","documentation":"Jib validates <container><creationTime>, which sets the image creation timestamp. It must be an ISO 8601 date-time (DateTimeFormatter.ISO_DATE_TIME) or one of the special keywords \"EPOCH\" or \"USE_CURRENT_TIMESTAMP\". Invalid values raise InvalidCreationTimeException, which execute() wraps into a MojoExecutionException echoing the value.","triggerScenarios":"Setting <creationTime> to values like '2024-01-01', 'now', epoch milliseconds, or any string not parseable as ISO 8601 date-time and not one of the two keywords, via pom.xml or -Djib.container.creationTime.","commonSituations":"Reproducible-build setups using a plain date; scripts injecting 'now' expecting it to be a keyword; confusion with the filesModificationTime keyword set (EPOCH_PLUS_SECOND is not valid here).","solutions":["Use a full ISO 8601 timestamp, e.g. 2024-01-01T00:00:00Z.","Use keyword EPOCH for reproducible builds or USE_CURRENT_TIMESTAMP for build time.","Remove <creationTime> to use the default (EPOCH)."],"exampleFix":"// before\n<creationTime>now</creationTime>\n// after\n<creationTime>USE_CURRENT_TIMESTAMP</creationTime>","handlingStrategy":"validation","validationCode":"Set<String> keywords = Set.of(\"EPOCH\", \"USE_CURRENT_TIMESTAMP\");\nString t = System.getProperty(\"jib.container.creationTime\", pomCreationTime);\nif (t != null && !keywords.contains(t)) {\n  try { java.time.format.DateTimeFormatter.ISO_DATE_TIME.parse(t); }\n  catch (Exception e) { throw new IllegalArgumentException(\"creationTime must be ISO 8601 or EPOCH/USE_CURRENT_TIMESTAMP: \" + t); }\n}","typeGuard":null,"tryCatchPattern":"catch (MojoExecutionException e) { if (e.getMessage().contains(\"creationTime\")) { /* use ISO 8601 or a valid keyword */ } }","preventionTips":["Valid keywords are only EPOCH and USE_CURRENT_TIMESTAMP — 'now' is not accepted","Don't reuse EPOCH_PLUS_SECOND (that belongs to filesModificationTime)","Use EPOCH for reproducible builds unless you need real timestamps"],"tags":["maven","jib","configuration","date-format"],"backgroundTag":"invalid-date-format","analyzedSha":"fb949e2676afbbd7dd7a1ef61e20251931325654","analyzedAt":"2026-09-06T14:04:09.491Z","contentChangedAt":"2026-09-06T14:04:09.491Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}