Выбор между «I have been in London» и «I have been to London» зависит от контекста. 24
«I have been in London» используется, когда речь идёт о том, что человек недавно вернулся из Лондона, где посещал город или жил в нём какое-то время, например, в течение последних нескольких недель или месяцев. 2
«I have been to London» — когда сообщение заключается в том, что человек совершил какое-то путешествие в прошлом, которое включало одно или несколько относительно коротких визитов, и определяет места, куда его привели его прошлые путешествия. 2
Например, «I have been to London many times» — «Я бывал в Лондоне много раз», а «I have been in London for a month now» — «Я нахожусь в Лондоне уже месяц». 2