code: private List<Observance> calculateSortedObservances() {
  		List<DaylightSavingsTime> daylights = component.getDaylightSavingsTime();
  		List<StandardTime> standards = component.getStandardTimes();
  
  		int numObservances = standards.size() + daylights.size();
  		List<Observance> sortedObservances = new ArrayList<Observance>(numObservances);
  
  		sortedObservances.addAll(standards);
  		sortedObservances.addAll(daylights);
  
  		Collections.sort(sortedObservances, new Comparator<Observance>() {
  			public int compare(Observance left, Observance right) {
  				ICalDate startLeft = getValue(left.getDateStart());
  				ICalDate startRight = getValue(right.getDateStart());
  				if (startLeft == null && startRight == null) {
  					return 0;
  				}
  				if (startLeft == null) {
  					return -1;
  				}
  				if (startRight == null) {
  					return 1;
  				}
  
  				return startLeft.getRawComponents().compareTo(startRight.getRawComponents());
  			}
  		});
  
  		return Collections.unmodifiableList(sortedObservances);
  	}
docs: Builds a list of all the observances in the VTIMEZONE component, sorted
  by DTSTART.
  @return the sorted observances