ok.非常简单。认真阅读以下内容,你就有可能会明白:
1 He has been to Japan. He went there last year and stayed there for 9 months -----------这里的for 9 months是去年的事情,现在他不在那里了,所以用stayed, 不能用has stayed
2 He is in Japan. He has been / stayed there for 9 months 他现在仍然在那里,所以说是 has stayed,不能是stayed.
3 He will go to Japan tomorrow and (will) stay there for 9 months (after he reaches Tokyo).
这里 for 9 months 指的是将来,明天以後的事情。
for ten years (for+时间段) === since ten years ago (since+时间点)
都用于现在完成时,前提是到现在为止或对现在有影响。否则也可用于过去完成时
希望对你有帮助
还有可能是过去时,如:she worked in the factory for 20 years.