{"record":{"id":"d3915dc9188297e4","repo":"GoogleContainerTools/jib","slug":"container-creationtime-should-be-an-iso-8601-da-d3915d","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/BuildTarMojo.java","lineNumber":130,"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":112,"sourceCodeEnd":148,"githubUrl":"https://github.com/GoogleContainerTools/jib/blob/fb949e2676afbbd7dd7a1ef61e20251931325654/jib-maven-plugin/src/main/java/com/google/cloud/tools/jib/maven/BuildTarMojo.java#L112-L148","documentation":"Thrown as a MojoExecutionException from BuildTarMojo.execute when the <container><creationTime> value (or jib.container.creationTime property) is neither an ISO 8601 date-time (DateTimeFormatter.ISO_DATE_TIME) nor one of the special keywords EPOCH or USE_CURRENT_TIMESTAMP. Jib validates the container image creation time at build time and reports the offending value in the message.","triggerScenarios":"Running a jib goal with <creationTime> set to something like 'now', '2021-07-28' (date only, no time part), 'use_current_timestamp' (wrong case), or an empty string.","commonSituations":"Users assume 'now' works, supply a date without a time component, mis-case the keywords, or inject the value via a property/CI variable that is empty or formatted for a different tool.","solutions":["Set <creationTime> to a full ISO 8601 date-time, e.g. 2021-07-28T10:15:30Z.","Or use the exact keywords EPOCH or USE_CURRENT_TIMESTAMP (case-sensitive).","Check any -Djib.container.creationTime override for typos, whitespace, or empty values from CI variables.","If using ${maven.build.timestamp}, configure maven.build.timestamp.format as yyyy-MM-dd'T'HH:mm:ss'Z' so the injected value parses."],"exampleFix":"<!-- before -->\n<creationTime>now</creationTime>\n<!-- after -->\n<creationTime>USE_CURRENT_TIMESTAMP</creationTime>","handlingStrategy":"validation","validationCode":"String c = System.getProperty(\"jib.container.creationTime\", pomValue);\nif (c != null && !c.equals(\"EPOCH\") && !c.equals(\"USE_CURRENT_TIMESTAMP\")) {\n  java.time.format.DateTimeFormatter.ISO_DATE_TIME.parse(c); // throws if invalid\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Prefer the USE_CURRENT_TIMESTAMP keyword over generating timestamps manually.","Include both date and time components (ISO 8601 date-time, not date-only).","Keywords are case-sensitive — copy them exactly.","Validate CI-provided values for emptiness before passing them via -Djib.container.creationTime."],"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"}