这个句子要表达的是一个状态,所以要用连续性的谓词.
如果用短暂性的动词to表达就错了,意思就成了他去美国两年了(一直还没到美国).
He has been in America for two years.
或者用:He went to America since last year (two years ago).
类似的句型还有:
I went home yesterday.
= I have been at home for two days.
They came here last week.
= They have been here since last week.