docs: private static void print(Appendable out, Timestamp adjusted)
          throws IOException
      {
          // null is our first "guess" to get it out of the way
          if (adjusted == null) {
              out.append("null.timestamp");
              return;
          }
  
          // so we have a real value - we'll start with the date portion
          // which we always have
          print_digits(out, adjusted._year, 4);
          if (adjusted._precision == Precision.YEAR) {
              assert adjusted._offset == UNKNOWN_OFFSET;
              out.append("T");
              return;
          }
  
          out.append("-");
          print_digits(out, adjusted._month, 2);  // convert calendar months to a base 1 value
          if (adjusted._precision == Precision.MONTH) {
              assert adjusted._offset == UNKNOWN_OFFSET;
              out.append("T");
              return;
          }
  
          out.append("-");
          print_digits(out, adjusted._day, 2);
          if (adjusted._precision == Precision.DAY) {
              assert adjusted._offset == UNKNOWN_OFFSET;
              // out.append("T");
              return;
          }
  
          out.append("T");
          print_digits(out, adjusted._hour, 2);
          out.append(":");
          print_digits(out, adjusted._minute, 2);
          // ok, so how much time do we have ?
          if (adjusted._precision == Precision.SECOND) {
              out.append(":");
              print_digits(out, adjusted._second, 2);
              if (adjusted._fraction != null) {
                  print_fractional_digits(out, adjusted._fraction);
              }
          }
  
          if (adjusted._offset != UNKNOWN_OFFSET) {
              int min, hour;
              min = adjusted._offset;
              if (min == 0) {
                  out.append('Z');
              }
              else {
                  if (min < 0) {
                      min = -min;
                      out.append('-');
                  }
                  else {
                      out.append('+');
                  }
                  hour = min / 60;
                  min = min - hour*60;
                  print_digits(out, hour, 2);
                  out.append(":");
                  print_digits(out, min, 2);
              }
          }
          else {
              out.append("-00:00");
          }
      }