code: public int getMillisecond() {
  
          BigDecimal fractionalSeconds = getFractionalSecond();
  
          // is field undefined?
          if (fractionalSeconds == null) {
              return DatatypeConstants.FIELD_UNDEFINED;
          }
  
          return getFractionalSecond().movePointRight(3).intValue();
      }
docs: <p>Return millisecond precision of {@link #getFractionalSecond()}.</p>
  
  <p>This method represents a convenience accessor to infinite
  precision fractional second value returned by
  {@link #getFractionalSecond()}. The returned value is the rounded
  down to milliseconds value of
  {@link #getFractionalSecond()}. When {@link #getFractionalSecond()}
  returns <code>null</code>, this method must return
  {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
  
  <p>Value constraints for this value are summarized in
  <a href="#datetimefield-second">second field of date/time field mapping table</a>.</p>
  
  @return Millisecond  of this <code>XMLGregorianCalendar</code>.
  
  @see #getFractionalSecond()
  @see #setTime(int, int, int)