Our site is configured to force a particular timezone on users ( Admin > Calendar -> timezones ). With DST that is currently GMT-6 (we're in Minnesota). The user accounts were initially created in September so they have timezones of GMT-5. This works fine most places, but not in chat. The current code disregards the setting in Admin>Calendar->timezones and uses the one set in the useraccount instead. To Fix this, I've applied the following patch to moodle/mod/chat/lib.php:
diff lib.php lib.php-orig
529,534d528
< if(isset($CFG->forcetimezone)){
< if($CFG->forcetimezone != 99)
< }
<
This checks to see if the forcetimezone value has been set and uses it instead of the currentuser value. I've tested this with and without the Admin->Calendar->timezones setting and it seems to work properly when both the timezone is specified and when users are allowed to choose.
Matt