I've changed my hours so that a normal day is 8-4pm, which avoids the worst of the London rush hour on trains etc.. However, I'm a salaried employee and senior enough that I'm expected to work the hours needed for the job - so not unusual to be in a meeting finishing much later than that.
I tend to get in about 10 minutes early, when I start working, but do also eat my breakfast. A full lunch break is a luxury, but doable if I really want.
I leave on time when I can, and stay late when I have to. My work appreciates that, my manager appreciates that, and so when I want to head home a bit earlier as I'm off on a trip up north or something else, it's not a problem and doesn't require annual leave.