I could manage to change time zone on Heroku but still it is giving one hour less than my local time. Can anyone help on how to set DST (daylight saving) offset on Heroku?
I had a similar problem with php and DateTime() with a Symfony project at Heroku. I realized the time difference after the summertime daylight change in Central Europe. Even setting the timezone at heroku does not solve the problem:
$ heroku config:set TZ=Europe/Berlin
When i read out the phpinfo() at server-side the settings where UTC, so i decided to change the php.ini settings at Heroku. Here is an article from Heroku:
https://devcenter.heroku.com/articles/custom-php-settings#php-runtime-settings
By adding a .user.ini file to your web-root you can adapt the settings for your app. E.g. by adding the date.time setting:
date.timezone = Europe/Berlin
I know this is not the best solution for worldwide usage, but it works so far and my symfony app is only important for Central Europe now.
Heroku apps run on a normal unix system, and you have all the zoneinfo files there. I'm also fairly sure they're up-to-date.
As far as unix goes, you should be able to set your TZ env var with something like:
$ heroku config:set TZ=Europe/Berlin
You can see the valid zoneinfo names with:
$ heroku run find /usr/share/zoneinfo/posix
Generally speaking, though, you'll want to run your application on an UTC environment, and handle timezones internally, possibly handling local time on a user-per-user basis.
I suspect this may not entirely answer your question. You might want to expand on what exactly you're trying to achieve and how you're trying to achieve it, and also how you are observing the "one hour less than local" effect.