Hello,
I'm investigating how to deal with timezones for an application that will
get to
processes billions of timestamped events, generated in just about any part
of the world.
Timestamps are in local time (without timezone, only post- and other codes)
and we need
them in UTC time. Money is involved, so it is of critical importance
that intervals
between events are calculated correctly.
There's two steps involved in this:
- given some geo data and some lookup tables from a database like
geopostcodes.com, determine the timezone id
- convert to UTC using the latest Time Zone Database
Development wise it's fairly simple to automate. We're using joda
time and this library allows to
plugin a custom Timezone provider which can then use the latest TZ
database.
However, I see some issues:
1) I noticed that certain timezone ids are deleted in newer versions:
tzdata2014a contains
America/Shiprock, newer versions don't. This may lead to issues
whenever recalculations are needed
in the future. What is the likelyhood that ids are deleted?
2) Do rules from the past ever change? In other words, can we assume
that a recalculation of a past
local date to a UTC date will always yield the same result with newer
versions of the TZ database?
If so, is this a common thing and would one then recommend saving the TZ
database version with
which the conversion was performed along with the UTC date?
Hope one of you can shed some light!
Cheers,
Joris