Scheduled tasks are executed as a "system", but I think that there is still a user context, which means that Date.today() or System.today() will be in the CDT.
Update:
Just test this and DateTime.now() will return GMT values.
Another update:
The docs say Date.today() returns a date in the user's current time zone. Based on the test below, the system knows who the user is and knows the time zone of the user, so Date.today() will be the current date in the user's time zone. I confirmed this by setting my time zone to +10 and the system returned in 2012-03-15 for the date.
// Brisbane +10 time zone global void execute(SchedulableContext SC) { System.debug(DateTime.now()); // 2012-03-14 19:24:39 System.debug(DateTime.now().formatLong()); // 3/15/2012 5:24:39 AM AEST System.debug(Date.today()); // 2012-03-15 00:00:00 System.debug(UserInfo.getUserName()); // dev1@jeremyross.org }
source share