Yes, this happens because the time is stored in UTC, which works nicely in most places.
But for the scheduler, the user expects things to happen in local time. I think all these issues will be resolved if we just change the scheduler such that it stores and uses local time.