Which preposition is correct and what is the difference in meaning if any?

I went to the gym, something I haven't done for a long time.

I went to the gym, something I haven't done in a long time.

  • 1
    I think they're both valid, but for is probably much more common, and in seems to me somewhat more dialectal/informal. – FumbleFingers Oct 27 '11 at 17:48

Barrie's answer is correct for the case you used as an example. However, when referring to the future, only "for" is correct.

"I won't be going to the gym again for a long time" ← valid
"I won't be going to the gym again in a long time" ← incorrect

| improve this answer | |
  • 3
    I don't agree with your example, I think they are both OK. My example where they are not the same: I have been living here for a long time. not in a long time. – GEdgar Oct 27 '11 at 19:21

Both are grammatical. There's no difference in meaning, but, at least in the UK, in a long time could be a class marker.

| improve this answer | |
  • This chart showing done in/for a while suggests the in version may be the upcoming "new kid on the block". – FumbleFingers Oct 27 '11 at 17:52
  • 4
    I don't think anyone in the US would even notice the difference, let alone make a judgment based on it. – user13141 Oct 27 '11 at 17:59
  • As always, we must treat nGram charts with caution, since they are based only on the written language. – Barrie England Oct 27 '11 at 18:11
  • Could you elaborate on the class marker? Which class, for instance? – Sam Oct 27 '11 at 18:32
  • I have no evidence, and am prepared to be told I'm wrong, but I think it likely that in the UK 'in a long time' would be less likely to be found in working class speech than in middle class speech. – Barrie England Oct 27 '11 at 18:50

We have been living here for a long time. (present perfect continuous) - It began in the past, and still lasts.

They lived in New York for a long time. (past simple) - The action began and finished in the past.

They will do it in a long time. (future simple) - It will begin and be finished a long time from now, in the future.

for a long time (present perfect (continuous)) - past - present - future

for a long time (past simple) - past

in a long time - future

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.