public final long getTime() {
		if(_onlineModus) {
			return System.currentTimeMillis();
		}
		if(_time == -1) {
			long waitingTime = 0, startTime = System.currentTimeMillis();
			long sleepTime = 10;
			while(waitingTime < CommunicationConstant.MAX_WAITING_TIME_FOR_SYNC_RESPONCE) {
				try {
					synchronized(_timeNotification) {
						_timeNotification.wait(sleepTime);
						if(sleepTime < 1000) sleepTime *= 2;
					}
					if(_time != -1) {
						break;
					}
					waitingTime = System.currentTimeMillis() - startTime;
				}
				catch(InterruptedException e) {
					e.printStackTrace();
					break;
				}
			}
		}
		if(_time == -1) {
			throw new IllegalStateException("Die Zeit kann nicht bestimmt werden.");
		}
		return _time;
	}