private static Instant parseDate(String rawDate) {
        return DateTimeFormatter.ISO_DATE.parse(rawDate, LocalDate::from).atStartOfDay().toInstant(ZoneOffset.UTC);
    }
Defines a Flag.

@param factory            Factory for creating unbound flag of type U
@param flagId             The globally unique FlagId.
@param defaultValue       The default value if none is present after resolution.
@param description        Description of how the flag is used.
@param modificationEffect What is required for the flag to take effect? A restart of process? immediately? etc.
@param dimensions         What dimensions will be set in the {@link FetchVector} when fetching
                          the flag value in
                          {@link FlagSource#fetch(FlagId, FetchVector) FlagSource::fetch}.
                          For instance, if APPLICATION is one of the dimensions here, you should make sure
                          APPLICATION is set to the ApplicationId in the fetch vector when fetching the RawFlag
                          from the FlagSource.
                          SYSTEM, CLOUD, ENVIRONMENT, and ZONE_ID are special:  These dimensions are resolved just
                          before the flag data is published to a zone.  This means there is never any need to set
                          these dimensions when resolving a flag, and setting these dimensions just before resolving
                          the flag will have no effect.
                          There is one exception.  If any of these dimensions are declared when defining a flag,
                          then those dimensions are NOT resolved when published to the controllers.  This allows
                          the controller to resolve the flag to different values based on which cloud or zone
                          it is operating on.  Flags should NOT declare these dimensions unless they intend to
                          use them in the controller in this way.
@param <T>                The boxed type of the flag value, e.g. Boolean for flags guarding features.
@param <U>                The type of the unbound flag, e.g. UnboundBooleanFlag.
@return An unbound flag with {@link Dimension#HOSTNAME HOSTNAME} and
        {@link Dimension#VESPA_VERSION VESPA_VERSION} already set. The ZONE environment
        is typically implicit.
flags/src/main/java/com/yahoo/vespa/flags/Flags.java