There isn't really a question... Still:
NSDate is always in UTC. When you call NSLog, it displays what time it would be in London with daylight savings time turned off. So your initial NSDate is one second before 10pm in London with daylight savings time turned off (UTC) and one second before midnight where you are. You then calculate an NSDate that is just at the start of your day in Germany. At that point in time, it's 10pm on the previous day in UTC, and that's what NSLog shows.