code: public static synchronized String genTimeMillisId() {
          String ret;
  
          ID_GEN_LOCK.lock();
          try {
              ret = String.valueOf(System.currentTimeMillis());
  
              try {
                  Thread.sleep(ID_GEN_SLEEP_MILLIS);
              } catch (final InterruptedException e) {
                  throw new RuntimeException("Generates time millis id fail");
              }
          } finally {
              ID_GEN_LOCK.unlock();
          }
  
          return ret;
      }
docs: Gets current date time string.
  
  <p>
  <b>Note</b>: This method is not safe in cluster environment.
  </p>
  
  @return a time millis string