Time Zones in ZCS
This page describes the relationship between the Zimbra Collaboration Suite and time zones. Different parts of ZCS read time zone information from different places, and this page explains it all.
There are three places where time zone information can be examined:
- the COS and account object in LDAP
- the user's PC (or mobile device)
- the server OS
Different clients examine different settings.
Time Zone Sources
COS and Account
The COS and Account objects be can examined (e.g. for an account) by zmprov:
prompt> zmprov ga email@example.com | grep -i timezone
zimbraPrefTimeZoneId: (GMT-06.00) Central Time (US & Canada)
So you can see there is a preference called zimbraPrefTimeZoneId that stores the string description of the time zone.
The server is particular about how this time zone is identified, and all settings of the attribute must match one of the "known" time zones. A list of known time zones is provided at the bottom of this page.
Note that in past versions of ZCS users may have been provisioned with the US-Pacific time zone if no other time zone was explicitly specified. If this has occurred you can broadly change all time zones (for any not set in particular) by changing zimbraPrefTimeZoneId on the user's COS. This will change the effect time zone for any user that has not had their account-specific zimbraPrefTimeZoneId set.
Changing the Timezone for the Default COS
Changing the timezone for the default COS change the timezone for all accounts unless the account has an specific timezone set. It is recommended that you do this after a new Zimbra install since by default the timezone set by Zimbra is -8 US Eastern.
To change the timezone for the COS using zmprov:
prompt> zmprov mc default zimbraPrefTimeZoneId '(GMT+10.00) Canberra / Melbourne / Sydney'
Where '(GMT+10.00) Canberra / Melbourne / Sydney' is the timezone you want to be applied.
Changing the Timezone for an Account
If you have an individual account that needs to be set to a different timezone, then this can be set.
To change the timezone for a specific account using zmprov:
prompt> zmprov ma firstname.lastname@example.org zimbraPrefTimeZoneId '(GMT+10.00) Canberra / Melbourne / Sydney'
Where 'email@example.com' is the account to be modified and '(GMT+10.00) Canberra / Melbourne / Sydney' is the timezone you want to be applied to that account.
The user's PC
This is determined by the user as appropriate for their OS.
The server OS
This is determined by the administrator as appropriate for their OS.
Example of correcting time (moving forward) and using ntpd on a RHEL5 box:
Confirm timezone references are right : zdump -v /etc/localtime | grep 2008 Install ntpd if it's not : yum install ntpd
(you might need to open port access to reach outside ntp servers)
Stop ntpd : /etc/init.d/ntpd stop Set time with : ntpdate us.pool.ntp.org Confirm time change : date Confirm hardware clock time : hwclock Sync hardware clock time : hwclock --systohc Confirm hardware clock time : hwclock Start ntpd now : /etc/init.d/ntpd start Ensure ntp running after restart : chkconfig ntpd on
There are several clients in use with Zimbra and they have different behaviors.
MobileDifferent mobile clients have subtle differences in dealing with calendar time zones. Getting the time from the network can exacerbate this problem as network time sometimes includes only an offset from GMT and does not specify a full time zone definition that would include daylight savings time change over days.
There are two factors that determine the presentation of calendar data in mobilesync clients. One is the time zone setting on the mobile device, which can be either manually set or set by the network; the other is the time zone information in each meeting. This works well in most cases except for all day events downloaded to VersaMail clients (PalmOS). All day events don't have an inherent time zone, but mobilesync protocol requires a timezone setting even for these events. Zimbra server therefore uses the user account's default time zone setting when sending all day events to mobile clients. If the user account time zone happens to be different from the mobile device's time zone, VersaMail displays an all day event as two segments spanning two days.
Mobile device time zone settings impact the device only and do not alter data on the server.
The basic (or lite) web clientIn 4.5.x the basic client uses the server's time zone for rendering times in message list displays. Starting in 4.5.7, the basic client uses the account's time zone setting (see bug 18033 for more info).
In 5.0.0 the basic client will use the account's time zone for message list displays and calendaring.
Note that the basic client ignores the time zone on the PC. In 5.0.0 the basic client does expose the time zone to be used; this impacts the account's zimbraPrefTimeZoneId.
The advanced (or AJAX) web clientThe advanced client uses the time zone of the user's PC for rendering times in messages list displays as well as calendar functions.
Note that the advanced client ignores the time zone set on the account. As of ZCS 4.5.6 the account time zone is not exposed for editing in the advanced client.
zmprovThe admin CLI zmprov provides access to the COS and account attributes and will also read them.
OutlookThe Zimbra Connector for Outlook as well as "plain" Outlook using IMAP or POP will use the PC's time zone.
ZDesktopZDesktop functions like the advanced/AJAX client.
iCaliCal uses the PC's time zone.
Known Time Zones for zimbraPrefTimeZoneId
As of 4.5.0 and later releases the server understands the following time zones. Only these strings should be used to set zimbraPrefTimeZoneId.