@Override
  public long getLong(DateTimeField field) {

    if (field instanceof ChronoField) {
      switch ((ChronoField) field) {
        case MONTH_OF_YEAR:
          return this.month;
        case EPOCH_MONTH:
          return getEpochMonth();
        case YEAR_OF_ERA:
          return (this.year < 1 ? 1 - this.year : this.year);
        case YEAR:
          return this.year;
        case ERA:
          return (this.year < 1 ? 0 : 1);
      }
      throw new DateTimeException("Unsupported field: " + field.getName());
    }
    return field.doGet(this);
  }