* @return zero if order does not matter,
* negative value if lhsObj < rhsObj, positive value otherwise.
* @throws IllegalArgumentException if either argument is not supported
*/
public int compare(Object lhsObj, Object rhsObj) {
InstantConverter conv = ConverterManager.getInstance().getInstantConverter(lhsObj);
Chronology lhsChrono = conv.getChronology(lhsObj, (Chronology) null);
long lhsMillis = conv.getInstantMillis(lhsObj, lhsChrono);
conv = ConverterManager.getInstance().getInstantConverter(rhsObj);
Chronology rhsChrono = conv.getChronology(rhsObj, (Chronology) null);
long rhsMillis = conv.getInstantMillis(rhsObj, rhsChrono);
if (iLowerLimit != null) {
lhsMillis = iLowerLimit.getField(lhsChrono).roundFloor(lhsMillis);
rhsMillis = iLowerLimit.getField(rhsChrono).roundFloor(rhsMillis);
}