Although Spanish has a present perfect construction, you’ll sound more natural if you avoid it in some situations. Let’s look at some cases where English, but not Mexican Spanish, typically uses present perfect. (Recall that present perfect is formed by combining have/haber with the past participle: have eaten, has comido.)
- I’ve been awake for a while. Estoy despierto desde hace rato. The Spanish version uses simple present: estoy.
- We’ve known each other since high school. Nos conocemos desde la prepa. Again, the present perfect of the English version becomes simple present in Spanish.
Street jugglers, Mexico City
In the following examples, the English gloss uses ‘for’ followed by an amount of time, or ‘since’ followed by a period of time. If that’s the idea you want to express in Spanish, do it with simple present with tener or llevar.
- I’ve been working at this company for three years. Llevo/Tengo tres años trabajando en esta empresa. This is a progressive construction.
- I’ve been waiting for a while. Tengo rato esperando.
- My aunt and uncle have been married for forty years. Mis tíos tienen cuarenta años de casados.
The use of tener or llevar to describe how long you’ve been somewhere is very common in Mexican Spanish. Although you could say He estado trabajando en esta empresa por tres años, more frequently you’ll hear a construction with llevar or tener.
Have you been to …?
Don’t forget that conocer translates ‘have you (ever) been’ when talking about places.
- Have you been to New York? ¿Conoces Nueva York? Note the use of simple present here.
When talking about expected events, simple past is the most common choice in Mexican Spanish.
- Have you eaten yet/already? ¿Ya comiste? Simple past.
The situation is a bit different in European Spanish, but the examples above are typical of Mexican usage.