为什么这里用 in three years?

有一读者问: 有这样一个句子:

(1)I haven't been there in three years.

为什么这里用in而不用 for?是不是错了?

这里用 in 并没有错,但它是美国或加拿大英语。 in 在此的意思相当于 during。 这种in常用在否定结构中,再如:

(2)He hasn't had a good meal in a long time.

(3)The house has not been cleaned in some time.

另外,在有 first, only 以及最高级形容词的情况下,美、加英语也常用 in,如:

(4)This is the first time in years that I have met such a man.

(5)That was the worst accident in months.

在上述情况下,英国英语常用 for, 但当今用 in 的情况也不少。