borrow的过去完成时为borrowed,因为borrow不是不规则动词。
可以说 I have known... ,但是不能说 I have been knowing... ,因为 know 这种表示静止状态的动词不能用于进行时态,所以也不能用于现在完成进行时,所以你说的第二句 I have been knowing sth for... 是错误的,不过第四句 I have known sth for... 是正确的。
borrow 则是一个瞬间性/终止性动词,它不可能和表示一段时间的时间状语比如 for some time连用,所以你说的第一句和第三句都是错误的。
borrow不是不能用于现在完成时,而是它是非延续性动词,用于表现持续的句子中要将非延续性动词转化成延续性动词。你下面所列的动词中know是延续性动词,smell是表示状态是系动词,believe,think,considver,hear,是及物动词,(它们的后面常接宾语补足语)这些词都不是非延续性动词,不涉及变化形式,常见的非延续性动词变成延续性动词的有:buy--have,come to/go to --be in (on,at), leave --be away, borrow--keep, join-be a member of /be in /be with, wake --be awake ,open-- be open ,get up --be up ,close --be closed , move to --live in , die --be dead ,start/begin --be on, end -- be over, get/turn/become--be 以上都是常用的。希望能帮你解决你的问题。
how long have you kept the book?这本书你借了多长时间。
borrow是短暂性动词,表示动作的不延续,不能用于完成时。
borrow对应的持续性动词是keep。
我理解你的问题所在:borrow与keep在完成时中的用法。
borrow完全可以用在完成时中,只是不跟表示一段时间的时间状语连用,这个时候则用keep代替,如:
Have you borrowed the magazine from the school library yet? (你的原句)你从学校图书馆借了那本杂志了吗?
I borrowed the magazine from the school library last 小猫, and I've kept it for five days.。
因为像借、买等动词是瞬间动词,一般不跟表示一段时间的时间状语连用。
希望对你有帮助
原文地址:http://www.qianchusai.com/borrow%E8%83%BD%E7%94%A8%E4%BA%8E%E5%AE%8C%E6%88%90%E6%97%B6%E5%90%97.html