Sometimes I see the following in ESL learners' writing:

I have been to America two years ago.

Am I correct in saying that it should be:

I have been to America.

I went to America two years ago.

My own understanding is that time periods aren't used with 'have been', but is this correct?

Thanks in advance!


No, it is not correct to say that "that time periods aren't used with 'have been'".
Nor is it correct (as in Patrick's answer) to say that "we don't use the present perfect with specific time related events".

Tense itself is 'time-related', and hence almost everything we say has some relationship to time.

The primary question (as Patrick correctly hinted at in his first sentence), is whether the event in question is completely in the past or is still on-going.

Said while in America
I have been in America for two years (and I'm still here).
I came to America two years ago (and I'm still here, or I've come back again).
I was in America two years ago (and I've come back again).
I was last in America two years ago (and I've come back again; also implies that I may also have visited on previous earlier occasions).
I have been in America for the past two years (and I'm still here).

Said while not in America
I went to America two years ago (and am no longer there).
I was in America two years ago (and am no longer there).
I was last in America two years ago (implies that I had also been on previous earlier occasions, and may go again).
I have been to America (at one or more unspecified time(s) in the past).
I have been in America for the past two years (and now I've come here/back home).