public Long apply(String retryAfter) {
      if (retryAfter == null) {
        return null;
      }
      if (retryAfter.matches("^[0-9]+\\.?0*$")) {
        retryAfter = retryAfter.replaceAll("\\.0*$", "");
        long deltaMillis = SECONDS.toMillis(Long.parseLong(retryAfter));
        return currentTimeMillis() + deltaMillis;
      }
      try {
        return ZonedDateTime.parse(retryAfter, dateTimeFormatter).toInstant().toEpochMilli();
      } catch (NullPointerException | DateTimeParseException ignored) {
        return null;
      }
    }
returns an epoch millisecond that corresponds to the first time a request can be retried.

@param retryAfter String in <a href="https://tools.ietf.org/html/rfc2616#section-14.37"
    >Retry-After format</a>
core/src/main/java/feign/codec/ErrorDecoder.java