code: public <C extends CalendarVariant<C>> GeneralTimestamp<C> toGeneralTimestamp(
          CalendarFamily<C> family,
          String variant,
          TZID tzid,
          StartOfDay startOfDay
      ) {
  
          PlainTimestamp tsp = this.toZonalTimestamp(tzid);
          PlainTime time = tsp.getWallTime();
          int deviation = startOfDay.getDeviation(tsp.getCalendarDate(), tzid);
          tsp = tsp.minus(deviation, ClockUnit.SECONDS);
          C date = tsp.getCalendarDate().transform(family.getChronoType(), variant);
          return GeneralTimestamp.of(date, time);
  
      }
docs: /*[deutsch]
  <p>Wandelt diese Instanz in einen allgemeinen Zeitstempel um. </p>
  
  @param   <C> generic type of date component
  @param   family          calendar family for date component
  @param   variant         variant of date component
  @param   tzid            timezone id
  @param   startOfDay      start of day
  @return  general timestamp in given timezone (leap seconds will always be lost)
  @throws  IllegalArgumentException if given timezone cannot be loaded
  @throws  ChronoException if given variant is not recognized
  @since   3.8/4.5