We don't normally use the present perfect when we indicate a definite period that the event occurred at:
- *I have been to London in 1990.
But it is fine to say how long we were doing something for, as long as we don't indicate when this was:
- I have held my breath for three minutes before.
Notice that in the sentence above, we do not know when this event occurred.
The Original Poster's example sentence is grammatical, although without more context it may seem a bit odd. Here is a similar sentence with some context:
- I know you've been to London for the odd day before. But have you ever spent any real time there? Have you ever been there for two weeks, for example?
Hope this is helpful!
This is a common misunderstanding. Your sentence mentions an action. That action seems to be in the past. The statement uses the present tense. Why?
Some verbs express action. Other verbs express state of being*. The verb "to have" expresses a state of being.
1) I saw the film.
2) I have seen the film.
3) I had seen the film.
In 1), the only verb is a past-tense action verb.
in 2), there are two verb words which form a single verb phrase. The "have" is a present-tense state-of-being verb. The "seen" is a verb without any tense but with the perfect aspect. This form does not express the action of the verb "to see". It expresses the result of that action.
I have seen the film. I possess a result of the action.
In 3), the "had" is a past-tense state-of-being verb.
The structure of 3) is rarely used on its own. Often, it's used to suggest that one thing is even further in the past than another:
4) I had seen the film when I read the book.
The action of "to read" is in the past. At the time of the action of "to read", my state of being included the result of the action of "to see". This suggests that that action of "to see" happened before the action of "to read".
_______________
* As far as I can tell, we use the phrase "state of being" because the word "condition" would be confusing. Verbs like "to be" and "to have" express a condition in the sense of "the way things are", rather than the sense of "something required for something else". We use the word "condition" in the second sense when discussing subordinate clauses, so we use "state of being" when discussing what a verb can express.
Best Answer
in the context you are thinking seems weird to me.
But, you are right...
means you visited the place and came back.
However,
have/has gone to
not necessarily mean that s/he will not come back. For instance...has gone... talks about the 'current status'.
To clarify further...
Let me know any other instance that I missed here.