Unable to set right time in admin and frontend template

WordPress uses GMT. The only way to get around that is to declare a new timezone after the header to use for your own purposes. Kind of a pain.

Also see this answer: How to get WordPress Time Zone setting?