Bästa svaret
Båda påståendena är korrekta. Men betydelsen av båda skiljer sig från varandra. Betydelsen av
En 20-årig pojke – det finns en pojke vars ålder är 20 år.
20-årig pojke – En pojke som har 20-årig.
Svar
”De har bott i London i tio år när jag först träffade dem” är inte korrekt.
Du måste säga ”De HAR bott i London i 10 år år när jag först träffade dem ”.
” Jag träffade … ”är tidigare. Du måste lägga hänvisningen till” leva ”längre in i det förflutna. För detta använder vi Past Perfect Continuous (inte Present Perfect Continuous som du använde).
Likaså ”De har bott där i tio år när jag först träffade dem.” måste skrivas om som ”De HAR bott där i 10 år när jag först träffade dem dem. ”(Past Perfect istället för Present Perfect).
I det här fallet är någon av de (modifierade) meningarna acceptabla.
Om 10 år inte är särskilt relevant är du kunde också säga ”De bodde i London när jag först träffade dem”.
Och om du känner att du måste hitta ett sätt att använda Present Perfect, sätt det i ett citat, tillskrivet folket du träffade: ”Vi har bott i London i tio år”, sa de när vi träffades första gången. ”Said” kan ersättas med andra verb om du vill vara lite mer fantasifull i det rapporterade talet: avslöjat, förtroende, avslöjat, avslöjat, erkänt, erkänt, avslöjat, informerat [mig]; det bredare sammanhanget kommer att avgöra vilka av dessa som skulle vara mest lämpliga. Det finns andra, till exempel vouchsafed eller volontär men att använda dessa skapar en ganska pompös litterär inverkan … men jag driver nu bort! (Du hade tröttnat på det här svaret under en tid när jag erkände att jag drev bort från punkten.)