The actor playing him looks 27. He speaks too wisely for his youthful appearance.
27? Closer to 17. They're afraid if they cast a grownup the college-age kids won't want to see it.
Johnny Flynn was born in 1983 which made him 37 when he played Mr Knightley. I agree he was miscast though. He looked more like a labourer than a member of the landed gentry.