Have a Question You Need Answered?


All Articles

Local time versus UTC time


What time and time zone should I choose to set on the PCs running IGSS?


Local time
What time and time zone do you choose to set on the PCs running IGSS ? Easy question - they should all be set to the same local time, of course, and the time zone should be set to whatever zone the PC's are in. BUT before you choose, here are a few things to consider.

Inside IGSS all timestamping is done using UTC. UTC is the universal time, which is equal to Greenwich Mean Time, only it does not follow the changes in daylight saving time. UTC is the best choice for timestamping, as Windows today offers functionality to make UTC available to programs together with local time which is actually calculated as an offset from UTC.

IGSS uses UTC timestamping. Inside IGSS, all timestamps are in UTC, but when data, like logged values and alarms, are made available to the user, the timestamps are recalculated in local time so that the user can understand and relate to them, without having to do manual time calculations.

The IGSS ODBC Driver
But in the ODBC driver, for instance, the timestamps are NOT shown in local time, they are shown in UTC, exactly as they are stored inside the IGSS database. This is because ODBC is also used by IGSS itself, so it must follow the internal IGSS rules for timestamps, meaning it must show values in UTC. Furthermore, using the client-server version of the ODBC driver, it is not even guaranteed that the server and the client are located in the same time zone (though they probably are), so timezone calculations on the server may be misleading to the client.

Timestamping of data files
This UTC strategy also means that data files designated to cover a certain period may not APPEAR to be created and closed at the correct time, even though they are. For instance, the IGSS log file "02120114.log" is containing data for the hour 14:00-15:00 on December 1, 2002 - UTC time! so if you are located in the time zone GMT+1, like Denmark, it will contain data from the hour 15:00-16:00. During the daylight saving time period, the offset will be 2 hours. It may look odd, but it makes perfect sense, and it avoids the "missing hour" when entering daylight saving time and the "double hour" when daylight saving ends. However, when manually looking up data files covering a certain period, you must have this in mind.

Greenwich Mean Time (GMT)
So, instead of setting the time zone to the actual physical time zone, consider setting it to GMT, Greenwich Mean Time, which equals the UTC time. In that case, the timestamps in the IGSS database will be equal to the timestamps shown to the user, both through the ODBC interface and other interfaces like reports, and data files will indeed be created and closed at the expected times according to their names. Except during the summer, of course, where the IGSS interfaces will offset the timestamp one hour to match the daylight saving time, but internally everything is still on normal time.

Before you make your choice, you should consider the following effects:

  • Are there other programs running on the IGSS machines that will be affected by this time zone change?For instance, if your PCs are on the Internet, they will be offset from the rest of the world. This means that e-mail programs will have trouble to correctly timestamp mails sent in and out of your PCs.
  • Do you need to export data to other systems, where timestamping is done relative to the "real" UTC time, so that comparing data will fail?

Please bear in mind, that the idea of cheating with the time zone is not an absolute recommendation, it is only a suggestion, that might do exactly what you need, but it might just as well confuse things, so think carefully before choosing.

Daylight saving time
Finally there is the consideration regarding the daylight saving time. Should you check the "Automatically adjust clock for daylight saving changes" check box? In general, yes, you should! The UTC timestamping is not affected by checking this box, and in general you want to show the changed times to the user, so he does not have to remember whether it is during the summer period or not. So, unless you are working where industry standard dictates normal (winter) time to be displayed at all times, do check the box.

Note that it is NEVER correct to manually adjust the time, when the daylight saving changes! This WILL affect the UTC timestamping, and things will go wrong for you. Not checking the box simply means that times will always be displayed in normal time, not that daylight saving should be changed manually.