We are facing an issue with timezone after upgrading CiviCRM to 4.6.14 from 4.5.8. Our CMS is Drupal 7.43.
It seems if an admin sets a scheduled mail to be sent immediately, then the scheduled date time is set according to the admin user's set timezone in Drupal. We have CiviCRM cron setup via crontab. It seems when this cron runs, it checks the scheduled date time of the mailing job according to the Drupal Default Site Timezone.
So for example, an admin's timezone is set to Halifax and according to that current time is 7AM and site's default timezone is set to New York and current time is 6AM. When this admin creates a scheduled mail then the schedule time is set to 7AM. User intends to send this mail immediately, but when the CiviCRM cron is run, it seems that current time is 6AM and this mail is scheduled for 7AM. So it actually sends the mail after 1 hour.
This is actually an issue if user schedules the mail time. In the above example, if user sets the scheduled time to be 9AM, 2 hours from now, then user expects the mail to be fired after 2 hours. But in reality the mail will be sent after 3 hours when the site's timezone shows current time is 9AM.
In all previous CiviCRM versions, we never faced this issue. Is there something changed regarding the date/time handling in the cron job or the mail schedule setup? How do we resolve this issue?