have joined与joined
因为 join是非延续性动词,用于完成时时不能和表示段的时间状语连用,要改为相应的状态动词,比如:他参军两年了.
正:he has been in the army for two years.
误:he has joined the army for two years.
上句可以改用过去时:
正:he joined the army two years ago.
___________
"by the end of 1992"这个时间状语不是点时间,而是段时间,用于过去完成时,意思是"到1992年年底为止";表示点时间的是"at the end of 1992",用于一般过去时,意思是"在1992年底".
比较:
He had been in the army for two years by the end of 1992.到1992年底,他参军有两年了.=he joined the army two years before the end of 1992.
He joined the army at the end of1992.他1992年底当的兵.