1) 两者均可表示在多久时间“以前”(要放在表示一段时间的词语之后),但有区别:ago 从现在向前回溯,即现在的过去,因此通常与一般过去时连用;而 before 则从过去向前回溯,即指过去的过去,因此通常与过去完成时连用(尤其用于宾语从句中)。如:
I bought the computer two years ago. 我是两年前买这台电脑的。
He said they had left five days before. 他说他们 5 天前就离开了。
注:在表示推测或为使语境生动的句子中,有时也可用 ago 代替before。如:
He must have left a week ago. 想必他在一星期前就离开了(from www.yygrammar.com)。
I had thought that he had died at least 20 years ago. 我原以为他至少在 20 年前就已经去世了。
(2) before 有时单独使用(即不连用具体时间),泛指一般意义的“以前”,此时可用于一般过去时,也可用于现在完成时。如:
He didn’t know that before. 他以前不知道此事。
I have been there before. 我以前去过那儿。