Abbreviations used in this page:
- LT = legal time
- TZO = timezone offset
- UT = universal time
Books about timezone computations:
- FG = "Problèmes de l'heure résolus pour le monde entier" (Françoise Gauquelin, Guy Trédaniel éditeur), 1991
- THM "Traité de l'heure dans le monde", (Gabriel, Guy Trédaniel éditeur), 5th edition, 1990
Format used in g5In g5 database, dates are stored using 2 distinct fields :
One field to store date and time if present.
It respects ISO 8601 format and can be one of :
YYYY-MM-DD HH:MM:SSif time is known with precision of a second - ex:
YYYY-MM-DD HH:MMif time is known with precision of a minute - ex:
YYYY-MM-DDif time is not known - ex:
One field to store timezone offset.
The format can be :
sHH:MMwhen precision of a minute is sufficient - ex:
sHH:MM:SSwhen precision of a second is needed - ex:
sstands for "sign", plus or minus)
Expressing timezone offsetA surprising feature of historical data is that current usage does not respect the ISO 8601 definition of timezone offset.
The opposite value is always indicated.
This can be observed in Arno Müller files, in Cura web site and in both books FG and THM.
For example, for Brigitte Bardot, born 1934-09-28, Müller and both books indicate an offset of
Using the ISO 8601 definition,the offset for this date is
G5 program uses ISO 8601 definition
|Meaning for observed usage|
If LT is known, add the TZO to obtain UT
|Meaning for ISO 8601 and g5|
if UT is known, add TZO to obtain LT
This is equivalent to
If LT is known, substract the TZO to obtain UT
TZO = 6h
TZO = -06:00
To find UT :
From Cura value : UT = 07:00 + 6h = 13:00
From g5 value : UT = 07:00 - (-6h) = 13:00
The results are equivalent.
This is not a blocking problem as it's finally just a matter of convention.
Timezone offset computationThis is a delicate and important problem.
Important because TZO is necessary to compute a chart, and delicate because information sources are sometimes contradictory.
The reference is the "Olson database", used by operating systems and programming languages (https://www.iana.org/time-zones).
This handles simple cases when the offset is defined for a whole time zone at a given time.
For these cases, it's possible to compute the offset without ambiguity :
(date, time zone identifier) --> offset.
But things are sometimes more complex :
- In the 19th century, local time was used, so longitude is also needed for the computation.
In some periods of history, the offset depends on political events, and precise local conditions need to be known.
This happens for example in France or Italy at the end of world war 2, where the change of offset in a given city depends on the liberation date of the city.
G5 integrationTime zone computation is a weak point of current implementation :
- Edge cases (like end of WW2) are not computed.
- When 2 sources contradict, each case should be solved in a documented way.
As a consequence, offset computation in g5 is partial and should be a priori distrusted.
Persons have 3 fields to express a date and its timezone :
birth.date: the legal time
birth.tzo: the timezone offset
birth.date-ut: universal time
With (see above) :
date-ut + tzo = date
Examples of contradictions between sources
For Italy, both books say that offset is 1h for the whole country since 1893-11-01.
Olson database says 1901-12-13
For France or Italy, FG says that "local time" is local mean time.
THM talks about local real time.
The difference between real and mean local time is the equation of time.