public ArrayList<String> splitInterval(String timestampStart, String timestampEnd,
			int duration) {
		
		//create calendar object and simple date format corresponding to cosm request
		Calendar cal = Calendar.getInstance();
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
		ArrayList<String> list = new ArrayList<String>();

		try {
			//parse given interval borders (strings) to Date objects
			//TODO: Rethink: Increment lower border of first interval with one second
			//Date start = format.parse(timestampStart);
			Date start = this.overlongTimestampToDate(timestampStart);
			cal.setTime(start);
			cal.add(Calendar.SECOND, +1);
			start = cal.getTime();
			
			Date end = format.parse(timestampEnd);
			
			
			//TODO: rethink border issues
			//while start date is smaller than end date add duration to start date			
			while (start.compareTo(end)<=0){
				list.add(format.format(start));
				//set calendar time to current start value
				cal.setTime(start);
				//add the duration
				cal.add(Calendar.HOUR_OF_DAY, duration);
				//subtract one second to decrement the upper interval border
				cal.add(Calendar.SECOND, -1);
				//TODO: works, but looks weird...
				// if current date is still before the end date -> add to list
				if(cal.getTime().compareTo(end)<=0)list.add(format.format(cal.getTime()));
				// add one second
				cal.add(Calendar.SECOND, +1);
				start = cal.getTime();
			}
			
			// if list contains an odd number of elements, attach the end timestamp, seems to work
			if(list.size()%2!=0) list.add(format.format(end));
			
			//logger.info(list.size());
			//logger.info(list);
			
		} catch (ParseException e) {
			logger.warn("Problems splitting time interval: "+list);
			e.printStackTrace();
		}
		
		return list;
		
	}