code: public HandyDate date(Object expression, Object arg2) {
          if (arg2 instanceof TimeZone) {
              if (expression instanceof LocalDate) {
                  return create((LocalDate) expression, (TimeZone) arg2);
              }
              if (expression instanceof LocalDateTime) {
                  return create((LocalDateTime) expression, (TimeZone) arg2);
              }
              if (expression instanceof String) {
                  return create((String) expression, (TimeZone) arg2);
              }
              String msg =
                      "First argument as two arguments should be LocalDate or LocalDateTime or String(expression) when second argument is TimeZone: "
                              + expression;
              throw new TemplateProcessingException(msg);
          }
          if (arg2 instanceof String) {
              if (expression instanceof String) {
                  return create((String) expression, (String) arg2);
              }
              String msg = "First argument as two arguments should be String when second argument is String(pattern): " + expression;
              throw new TemplateProcessingException(msg);
          }
          String msg = "Second argument as two arguments should be TimeZone or String(pattern): " + arg2;
          throw new TemplateProcessingException(msg);
      }
docs: Create HandyDate object.
  @param expression Date expression.(LocalDate, LocalDateTime, Date String)
  @param arg2 TimeZone or Date String parse pattern.
  @return HandyDate