IBM Support

How to interpret the Hexadecimal values in a Time/Date value

Product documentation


Abstract

The hexadecimal format for a time/date value in Notes is an easier way to read what is actually a 64-bit binary value which contains all the information necessary for storing and converting times and dates. Each of the binary digits of this value are either a flag, a time zone, a date, or a time.

Content

Notes often displays time/date values in a 16-digit hexadecimal number format. Replica IDs, Sequence Dates, and UNIDs are all examples of this. This document explains how these hexadecimal values can be converted into dates, times, time zones, and daylight savings properties.

The hexadecimal format for a time/date value in Notes is an easier way to read what is actually a 64-bit binary value which contains all the information necessary for storing and converting times and dates. Each of the binary digits of this value are either a flag, a time zone, a date, or a time.

For example, a Replica ID is actually a representation of the creation time of a database:


85256468:006724D4 is hexadecimal equivalent of
10000101001001010110010001101000:00000000011001110010010011010100

All but the first two hexadecimal digits in a Replica ID are the date and time of the creation date of the database. The rightmost eight digits are the number of 100ths of a second since 12:00 AM Greenwich Mean Time (GMT) of the particular day. This is true regardless of the time zone in which the database was created because Notes stores all time values in GMT as a universal time standard. Working towards the left, the next six digits of the replica ID are a whole number of days, indicating the creation day (in Greenwich Mean Time) that the database was created. Because 256468 represents 03/28/1997, the image above shows that the database properties are for a replica of the original database. This number is actually the date in its Julian notation See the technote, "Error: 'Unable to interpret time or date' when entering specific dates from the year 1752" (#1098816) for more information. Following the steps outlined below to convert a hexadecimal value into a standard time value, the eight digits of the time portion of the value represent 67596.36 seconds since midnight GMT or 06:46:36.36 PM, but the time zone is stored elsewhere.

The leftmost two digits of the hexadecimal value store the time zone and daylight savings information for the time/date value. Remembering that the real value is a binary number, one can see that these eight bits of the value work as a set of numbers to indicate the offset from GMT as well as a bitmap to flag both the time zone and whether the value should be converted for daylight savings.

From the example, the replica ID stores this information as 85, which is 10000101 in binary. This binary number can be broken into two bitmaps, a 2-bit number, and a 4-bit number. The first bitmap indicates whether the value should be converted for daylight savings, while the second bitmap indicates whether the time zone is in the eastern or western hemisphere. The 4-bit number is the number of whole hours from GMT the time zone is offset. The example is a database created in the US Eastern time zone (5 hours west of GMT) on a server which obeys daylight savings.


Value DST E/W :30 :15 1:00
85 1 0 0 0 0 1 0 1


Notes will then read this value as being five hours west of Greenwich, and as observing daylight savings. Further, 86 represents US Central Time (six hours west of Greenwich), 87 represents US Mountain Time, and so on. Because of the DST flag, each of these examples would be converted for daylight savings depending on both the date part of the time/date value and the DSTLaw parameter on the client. If the time/date value does not observe daylight savings, the same time zones mentioned above will be represented by 05, 06, and 07, respectively. In other words, the DST flag will not change as the year progresses. Even in December, databases created in the Eastern time zone should continue have replica IDs that start with 85. This way, Notes will properly convert times for dates or zones that observe different daylight savings rules (e.g. Europe and the United Sates, Arizona and California, or Northern and Southern hemispheres). The Notes client and the Domino server use the DSTLaw parameter in the INI file to control the daylight savings rules during the year. Changing this parameter may change the way in which time/date values are displayed, but will not change the underlying stored value.

For time zones which are offset a fraction of an hour from GMT, Notes adds 15 minute increments to the whole hour offset. Thus, databases created in Newfoundland will show A3xxxxxx:xxxxxxxx because this time zone is three and a half hours west of GMT.


Value DST E/W :30 :15 Offset
A3 1 0 1 0 0 0 1 1


The following table lists all the time zones used by Notes:

Notes Time Zones

Value DST E/W :30 :15 Offset Description Zone DST Zone Code
0C 0 0 0 0 1100 (GMT-12:00) Eniwetok, Kwajalein Dateline Standard Time N ZW12
0B 0 0 0 0 1011 (GMT-11:00) Midway Island, Samoa Samoa Standard Time N CST
0A 0 0 0 0 1010 (GMT-10:00) Hawaii Hawaiian Standard Time N BST
89 1 0 0 0 1001 (GMT-09:00) Alaska Alaskan Standard Time Y YST/YDT
88 1 0 0 0 1000 (GMT-08:00) Pacific Time (US & Canada); Tijuana Pacific Standard Time Y PST/PDT
87 1 0 0 0 0111 (GMT-07:00) Mountain Time (US & Canada) Mountain Standard Time Y MST/MDT
07 0 0 0 0 0111 (GMT-07:00) Arizona US Mountain Standard Time N MST
06 0 0 0 0 0110 (GMT-06:00) Saskatchewan Canada Central Standard Time N CST
06 0 0 0 0 0110 (GMT-06:00) Central America Central America Standard Time N CST
86 1 0 0 0 0110 (GMT-06:00) Central Time (US & Canada) Central Standard Time Y CST/CDT
86 1 0 0 0 0110 (GMT-06:00) Mexico City Mexico Standard Time Y CST/CDT
85 1 0 0 0 0101 (GMT-05:00) Eastern Time (US & Canada) Eastern Standard Time Y EST/EDT
05 0 0 0 0 0101 (GMT-05:00) Bogota, Lima, Quito SA Pacific Standard Time N EST
05 0 0 0 0 0101 (GMT-05:00) Indiana (East) US Eastern Standard Time N EST
84 1 0 0 0 0100 (GMT-04:00) Atlantic Time (Canada) Atlantic Standard Time Y AST/ADT
84 1 0 0 0 0100 (GMT-04:00) Santiago Pacific SA Standard Time Y AST/ADT
04 0 0 0 0 0100 (GMT-04:00) Caracas, La Paz SA Western Standard Time N AST
A3 1 0 1 0 0011 (GMT-03:30) Newfoundland Newfoundland Standard Time Y NST/NDT
83 1 0 0 0 0011 (GMT-03:00) Brasilia E. South America Standard Time Y ZW3
83 1 0 0 0 0011 (GMT-03:00) Greenland Greenland Standard Time Y ZW3
03 0 0 0 0 0011 (GMT-03:00) Buenos Aires, Georgetown SA Eastern Standard Time N ZW3
82 1 0 0 0 0010 (GMT-02:00) Mid-Atlantic Mid-Atlantic Standard Time Y ZW2/YW2
81 1 0 0 0 0001 (GMT-01:00) Azores Azores Standard Time Y ZW1/YW1
01 0 0 0 0 0001 (GMT-01:00) Cape Verde Is. Cape Verde Standard Time N ZW1
80 1 0 0 0 0000 (GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London GMT Standard Time Y GMT/GDT
00 0 0 0 0 0000 (GMT) Casablanca, Monrovia Greenwich Standard Time N GMT
C1 1 1 0 0 0001 (GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague Central Europe Standard Time Y CET/CEDT
C1 1 1 0 0 0001 (GMT+01:00) Sarajevo, Skopje, Sofija, Vilnius, Warsaw, Zagreb Central European Standard Time Y CET/CEDT
C1 1 1 0 0 0001 (GMT+01:00) Brussels, Copenhagen, Madrid, Paris Romance Standard Time Y CET/CEDT
41 0 1 0 0 0001 (GMT+01:00) West Central Africa W. Central Africa Standard Time N CET
C1 1 1 0 0 0001 (GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna W. Europe Standard Time Y CET/CEDT
C2 1 1 0 0 0010 (GMT+02:00) Bucharest E. Europe Standard Time Y ZE2
C2 1 1 0 0 0010 (GMT+02:00) Cairo Egypt Standard Time Y ZE2
C2 1 1 0 0 0010 (GMT+02:00) Helsinki, Riga, Tallinn FLE Standard Time Y ZE2
C2 1 1 0 0 0010 (GMT+02:00) Athens, Istanbul, Minsk GTB Standard Time Y ZE2
42 0 1 0 0 0010 (GMT+02:00) Jerusalem Jerusalem Standard Time N ZE2
42 0 1 0 0 0010 (GMT+02:00) Harare, Pretoria South Africa Standard Time N ZE2
43 0 1 0 0 0011 (GMT+03:00) Kuwait, Riyadh Arab Standard Time N ZE3
C3 1 1 0 0 0011 (GMT+03:00) Baghdad Arabic Standard Time Y ZE3
43 0 1 0 0 0011 (GMT+03:00) Nairobi E. Africa Standard Time N ZE3
C3 1 1 0 0 0011 (GMT+03:00) Moscow, St. Petersburg, Volgograd Russian Standard Time Y ZE3
E3 1 1 1 0 0011 (GMT+03:30) Tehran Iran Standard Time Y ZE3B
44 0 1 0 0 0100 (GMT+04:00) Abu Dhabi, Muscat Arabian Standard Time N ZE4
C4 1 1 0 0 0100 (GMT+04:00) Baku, Tbilisi, Yerevan Caucasus Standard Time Y ZE4
64 0 1 1 0 0100 (GMT+04:30) Kabul Afghanistan Standard Time N ZE4B
C5 1 1 0 0 0101 (GMT+05:00) Ekaterinburg Ekaterinburg Standard Time Y ZE5
45 0 1 0 0 0101 (GMT+05:00) Islamabad, Karachi, Tashkent West Asia Standard Time N ZE5
65 0 1 1 0 0101 (GMT+05:30) Calcutta, Chennai, Mumbai, New Delhi India Standard Time N ZE5B
75 0 1 1 1 0101 (GMT+05:45) Kathmandu Nepal Standard Time N ZE5C
46 0 1 0 0 0110 (GMT+06:00) Astana, Dhaka Central Asia Standard Time N ZE6
C6 1 1 0 0 0110 (GMT+06:00) Almaty, Novosibirsk N. Central Asia Standard Time Y ZE6
46 0 1 0 0 0110 (GMT+06:00) Sri Jayawardenepura Sri Lanka Standard Time N ZE6
66 0 1 1 0 0110 (GMT+06:30) Rangoon Myanmar Standard Time N ZE6B
C7 1 1 0 0 0111 (GMT+07:00) Krasnoyarsk North Asia Standard Time Y ZE7
47 0 1 0 0 0111 (GMT+07:00) Bangkok, Hanoi, Jakarta SE Asia Standard Time N ZE7
48 0 1 0 0 1000 (GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi China Standard Time N ZE8
C8 1 1 0 0 1000 (GMT+08:00) Irkutsk, Ulaan Bataar North Asia East Standard Time Y ZE8
48 0 1 0 0 1000 (GMT+08:00) Kuala Lumpur, Singapore Malay Peninsula Standard Time N ZE8
48 0 1 0 0 1000 (GMT+08:00) Taipei Taipei Standard Time N ZE8
48 0 1 0 0 1000 (GMT+08:00) Perth W. Australia Standard Time N ZE8
49 0 1 0 0 1001 (GMT+09:00) Seoul Korea Standard Time N ZE9
49 0 1 0 0 1001 (GMT+09:00) Osaka, Sapporo, Tokyo Tokyo Standard Time N ZE9
C9 1 1 0 0 1001 (GMT+09:00) Yakutsk Yakutsk Standard Time Y ZE9
69 0 1 1 0 1001 (GMT+09:30) Darwin AUS Central Standard Time N ZE9B
E9 1 1 1 0 1001 (GMT+09:30) Adelaide Cen.Australia Standard Time Y ZE9B
CA 1 1 0 0 1010 (GMT+10:00) Canberra, Melbourne, Sydney AUS Eastern Standard Time Y ZE10
4A 0 1 0 0 1010 (GMT+10:00) Brisbane E. Australia Standard Time N ZE10
CA 1 1 0 0 1010 (GMT+10:00) Hobart Tasmania Standard Time Y ZE10
CA 1 1 0 0 1010 (GMT+10:00) Vladivostok Vladivostok Standard Time Y ZE10
4A 0 1 0 0 1010 (GMT+10:00) Guam, Port Moresby West Pacific Standard Time N ZE10
4B 0 1 0 0 1011 (GMT+11:00) Magadan, Solomon Is., New Caledonia Central Pacific Standard Time N ZE11
4C 0 1 0 0 1100 (GMT+12:00) Fiji, Kamchatka, Marshall Is. Fiji Standard Time N ZE12
CC 1 1 0 0 1100 (GMT+12:00) Auckland, Wellington New Zealand Standard Time Y ZE12
4D 0 1 0 0 1101 (GMT+13:00) Nuku'alofa Tonga Standard Time N ZE13



The DSTLaw parameter defaults to different values in different versions of Notes. Prior to 4.5.4a and 4.61, all Notes clients and Domino servers followed the North American rules for DSTLaw. In versions 4.5.4a, 4.61, and later, the International clients/servers all follow the European rules for DSTLaw.


Converting a Hexadecimal Value into a Standard Time Value

Given HEX ID 85256468:006724D4, the last 8 characters are 006724D4. This represents the number of ticks (1/100th of a second) that have elapsed since midnight GMT. This value will never be longer than 6 characters since there are only 8,640,000 ticks in a day or 83D600. You can mathematically figure out what this hex value is in hours, minutes, seconds, and ticks by using math, a Spreadsheet like Lotus 123, @functions, or LotusScript. Here is how it's done:

First convert the HEX value to Decimal (@Hex2Dec function in 123, or Windows Calculator):
006724D4 = 6759636

Next divide this number by 100, and multiply the remainder by 100 to get the number of ticks (Mod operator in LScript, @Modulo Notes Function, @Mod 123 function):
6759636/100 = 67596.36
.36 x 100 = "36" ticks

Next take the integer of the tick calculation, divide by 60, and multiply the remainder by 60 to get the number of seconds (Int Function in LScript, @Integer Notes Function, @Int 123 function):
67596/60 = 1126.6
.6 x 60 = "36" seconds

Next take the integer of the seconds calculation, divide by 60, and multiply the remainder by 60 to get the number of minutes (Int Function in LScript, @Integer Notes Function, @Int 123 function):
1126/60 = 18.766667
.766667 x 60 = "46" minutes

Finally take the integer of the minutes calculation the number of hours (Int Function in LScript, @Integer Notes Function, @Int 123 function):
"18" hours

So HEX value 006724D4 = 18 hours 46 minutes 36 seconds and 36 ticks since Midnight GMT.

Related information

Error: 'Unable to interpret time or date' when entering

Original publication date

2004/2/12

Product Alias/Synonym

Lotus Notes Client

Document information

More support for: IBM Notes

Software version: 8.0, 8.5, 9.0

Operating system(s): Linux, Windows, iOS

Software edition: All Editions

Reference #: 7003019

Modified date: 09 December 2008


Translate this page: