anchor.diff:      }
     }
   
  +  /// Checks whether [toCompare] has the same date as [date] ignoring the time.
  +  static bool _sameDate(Date date, DateTime toCompare) {
  +    if (date == null || toCompare == null) {
  +      return false;
  +    }
  +    return (date.year == toCompare.year &&
  +        date.month == toCompare.month &&
  +        date.day == toCompare.day);
  +  }
  +
     static DateTime cloneDateTime(DateTime dateTime) {
       return dateTime != null
           ? new DateTime.fromMillisecondsSinceEpoch(
  -            dateTime.millisecondsSinceEpoch)
  +            dateTime.millisecondsSinceEpoch,
  +            isUtc: dateTime.isUtc)
           : null;
     }
   }
  
positive.code: 
    /// Returns minimum time for time picker when selected date is minimum date.
    DateTime get minTime {
      if (_date != null &&
          minDateTime != null &&
          _date.year == minDateTime.year &&
          _date.month == minDateTime.month &&
          _date.day == minDateTime.day) {
        return cloneDateTime(minDateTime);
      }
      return null;
  
negative.code:   set date(Date value) {
      if (value != _date) {
        _date = value;
        if (_date != null && _time == null) {
          // Set default time to minimum time if date is minimum date.
          if (_sameDate(_date, minDateTime)) {
            _time = cloneDateTime(minDateTime);
          } else {
            _time =
                _utc ? new DateTime.utc(_date.year) : new DateTime(_date.year);
          }
        }
        _updateDateTimeAndNotify();
      }
    }
  