我的英文老師說,現在完成式(presentperfecttense)只可用來說「今天」的事;而假如說明行動的確實時間,也不可用現在完成式,例如不可說Ihavefinishedthejobat8:00pm(我下午八點鐘完成了工作)。這兩條規則正確嗎?英文是我老師的母語,但看第三版CollinsCOBUILDEnglishDictionaryforAdvancedLearnerstender條例句,說明時間的行動分明可用完成式表示:Hehadbecomeattractedtothegameatthetenderageofseven(他早在七歲那一年,已愛上了這遊戲)。
請先說第一點:現在完成式絕對不限於說「今天」的事。無論是今天還是幾天、幾年前去過澳門,你現在都可以說:IhavebeentoMacao。
說明時間的行動,不用現在完成式,那卻是正確的。IhavebeentoMacaothreeyearsago(我三年前去過澳門)這說法,一般視為不正確,應該用過去式動詞:IwasinMacaothreeyearsago。有時,你會看見英文傳媒不遵守這條規則,例如說TherehasbeenatrafficaccidentinMainStreetanhourago(一小時之前正街發生交通事故)等,但這不是正格,不宜學習。
至於CollinsCOBUILDEnglishDictionary那一句,則不妨學習。過去完成式(pastperfecttense)和現在完成式不同,適用於說明時間的行動,例如:(1)IhadbeentoMacaothreeyearsbefore。(2)ItoldthepolicethatIhadseenthemanthedaybefore(我告訴警察說,前一天見過那個人)。