给你几个例子, 你自己读读, 感觉一下
He has gone to America since 1999.正确
表示他从1999年就去美国了
He has gone to America for 2 years.错误
因为gone的原形go 是瞬间动词, 这个“去”的动作不能持续两年。
He has been to America since 1999. 错误
因为has been to 表示去过, 一般和几次相连用。
he has been in China for 2 years. 正确
他在中国呆了有两年了
for是介词你后跟短语 例如 for 2 years
since后跟时间点
都可用于现在完成时
都可以