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 g5
In 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:SS
if time is known with precision of a second - ex:1982-08-23 23:31:20
-
YYYY-MM-DD HH:MM
if time is known with precision of a minute - ex:1928-11-13 22:15
-
YYYY-MM-DD
if time is not known - ex:1928-03-28
-
-
One field to store timezone offset.
The format can be :sHH:MM
when precision of a minute is sufficient - ex:+01:00
or-01:00
sHH:MM:SS
when precision of a second is needed - ex:+00:23:15
or-08:12:44
s
stands for "sign", plus or minus)
1928-11-13 22:15+01:00
Expressing timezone offset
Using the vocabulary of CSV files generated from the database,DATE-UT + TZO = DATE
A surprising feature of historical data is that historical notation 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
-1h
.
Using the ISO 8601 definition,the offset for this date is
+01:00
G5 program uses ISO 8601 definition
Meaning for historical usage |
---|
LT + TZO = UT
If LT is known, add the TZO to obtain UT |
Meaning for ISO 8601 and g5 |
UT + TZO = LT
if UT is known, add TZO to obtain LT This is equivalent to UT = LT - TZO
If LT is known, substract the TZO to obtain UT |
Cura gives
TZO = 6h
g5 gives
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 computation
This 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 integration
Time 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.