B1B2 For French speakers

Present Perfect vs Passé Composé: Why You Say 'I Have Seen Him Yesterday'

One sentence many French speakers produce is 'I have seen him yesterday.' It feels correct because in French you would say 'Je l'ai vu hier', and 'j'ai vu' looks exactly like 'I have seen'. Same auxiliary, same past participle, same shape. The trap is that English took that shape and gave it a completely different job. Your passé composé covers two English tenses at once: the present perfect (I have seen) and the simple past (I saw). English splits them, and it splits them on one clean rule about time. Add to this the 'depuis + présent' habit that produces 'I work here since 2020', and you have the two mistakes that mark almost every French speaker at B1 and B2. This guide fixes both. You will learn the one question to ask before choosing a tense, and you will stop translating 'j'ai vu hier' word for word.

  1. See why 'j'ai vu' tricks you

    French has one everyday past tense for spoken language: the passé composé, built with avoir/être plus a participle. 'J'ai vu', 'J'ai mangé', 'Je suis allé'. English has two tenses sitting in that space: the present perfect (I have seen) and the simple past (I saw). Because passé composé and present perfect share the auxiliary-plus-participle shape, your brain reaches for 'I have seen' every time. That is the root of the whole problem.

    Repeat to yourself: passé composé is not a tense, it is two English tenses wearing the same coat.

  2. Learn the one rule: finished time word = simple past

    If the sentence names a finished time (yesterday, last week, in 2019, an hour ago, when I was young), English forces the simple past. No 'have'. So 'Je l'ai vu hier' is 'I saw him yesterday', never 'I have seen him yesterday'. The French time word 'hier' does not change your tense, but the English word 'yesterday' absolutely does. This single rule kills most of your present perfect mistakes.

    Hunt for the time word first. If it is dead and finished, drop the 'have'.

  3. Use present perfect when the time is open or unstated

    When there is no finished time word, or the period still includes now (today, this week, ever, never, already, yet), English wants the present perfect. 'I have already seen this film.' 'Have you ever been to Canada?' Here French often uses passé composé too, so 'J'ai déjà vu ce film' maps cleanly to 'I have already seen'. The mismatch only appears when a finished time word enters the sentence.

    'Already', 'yet', 'ever', 'never' are friends of the present perfect. 'Yesterday' and 'ago' are not.

  4. Fix the 'depuis + présent' bug

    This is the second French trap and it has nothing to do with passé composé. In French you say 'Je travaille ici depuis 2020' and 'J'habite à Lyon depuis cinq ans', both in the present tense. So you produce 'I work here since 2020' and 'I live in Lyon since five years'. English uses the present perfect for an action that started in the past and continues now: 'I have worked here since 2020', 'I have lived in Lyon for five years'. The French présent becomes the English present perfect.

    If you can say 'depuis' in French, you almost certainly need 'have' in English.

  5. Sort out 'depuis' = since or for

    French uses one word, 'depuis', for two English ideas. 'Since' marks a starting point: 'since 2020', 'since Monday', 'since I arrived'. 'For' marks a duration: 'for five years', 'for two months'. So 'depuis cinq ans' is 'for five years', not 'since five years'. Pair this with the present perfect from the previous step and you get the full correct form: 'I have lived here for five years' or 'since 2020'.

    Number plus time unit = for. A point on the calendar = since.

  6. Drill the contrast with minimal pairs

    Train your ear on pairs that differ only by the time word. 'I saw him yesterday' versus 'I have seen him' (no time word). 'She lived in Paris in 2010' versus 'She has lived in Paris since 2010'. Say both aloud, then translate the French original each time so you feel where 'j'ai vu' and 'depuis' tried to push you wrong. The goal is for the time word, not the French shape, to decide your tense automatically.

    Write five sentences about your own life with 'since' and 'for', then five with 'yesterday' and 'last year'. Check every 'have'.

Common questions

Why is 'I have seen him yesterday' wrong if 'j'ai vu hier' is correct?

Because English ties the present perfect to time that is not finished. 'Yesterday' is finished, so English demands the simple past: 'I saw him yesterday'. French passé composé ignores this and works with 'hier' just fine, which is exactly why French speakers carry the error over.

Is it 'since five years' or 'for five years'?

'For five years'. French uses 'depuis' for both, but English splits it: 'since' takes a starting point (since 2020, since Monday) and 'for' takes a length of time (for five years, for two months).

Why can't I say 'I work here since 2020'?

Because the action started in the past and continues now, English uses the present perfect: 'I have worked here since 2020'. French keeps it in the present ('Je travaille depuis 2020'), and that present tense is what misleads you.

Does passé composé always become the present perfect in English?

No, and that is the core confusion. It becomes the present perfect only when the time is open or unstated ('I have already seen it'). With a finished time word it becomes the simple past ('I saw it last night').

0

Sources

  1. Learner English: A Teacher's Guide to Interference and Other Problems (French speakers chapter), Cambridge University Press.

Want this fixed in your own English?

Phil coaches french speakers for interviews and business English, your specific mistakes, not generic lessons.

Book a lesson with Phil