Diferencias entre "for", "since" y "ago"

Para un hispanohablante es difícil saber diferenciar entre estas 3 palabras, porque las 3 significan "hace". Lo vamos a contar con detalle:

for

For tiene varios significados, con Present Perfect significa "desde hace" y se usa en con la estructura:

FOR + (PERIODO TEMPORAL)

I have lived in USA for 2 years
He vivido en Estados Unidos desde hace 2 años

Otros periodos temporales que pueden ser usados con for son:

Periodo TemporalSignificado
for 3 yearshace 3 años
for 2 weekshace 2 semanas
for 6 dayshace 6 días
for 10 hourshace 10 horas

Con otros tiempos verbales "for" puede significar "durante".

since

Since significa "hace" y se usa también en Present Perfect y tiene la construcción:

SINCE + (INSTANTE TEMPORAL)

I have lived in USA since 2010
He vivido en Estados Unidos desde el 2010

Os mostramos otros instantes temporales que pueden ser usados con since:

Instante TemporalSignificado
since 2009desde el 2009
since Sundaydesde el domingo
since Januarydesde enero
since 10 o'clockdesde las 10 en punto

ago

Ago también significa "hace" y pero en cambio se usa en Past Simple y tiene la construcción un poco extraña para los hispanohablantes, dado que ago es una preposiciones pospuesta (es decir va después de las palabras afectadas por ella):

(INVERVALO TEMPORAL) + AGO

I lived in USA 2 years ago
Viví en Estados Unidos hace 2 años