With the release of TZDB 1.9 I have decided to give this project some more attention. I have started TZDB in 2012 and the source code shows it; and besides, version
1.9 still supports Delphi 6! This of course comes with a ton of support issues and subtle bugs (like the recent issues with Linux compilation in Delphi). So, for version
2.0 I have decided that enough is enough and started focusing on the following fundamental changes:
- Rewrite the core logic to use year segments. Each segment represents a clearly defined period of the year that has some properties, such as local time type, abbreviation, bias and etc. This allows for much faster local date/time resolution and simplifies high-level TZDB functionality a lot.
- Better support for esoteric time zones. My preferred example is
Africa/Cairoin the years
2014. None of them will render entirely correct results in current version. And the crazy part is, each year has a different reason why! Another example is
Europe/Dublinwhich has its
- Make FreePascal support a priority. My primary desktop is GNU/Linux and I have no intention of switching back to Windows anytime soon. I do have a VM with Windows 10 and latest community edition of Delphi but I only use that to verify if the project compiles after my changes.
- And finally, drop support for pre-XP versions of Delphi and FreePascal before version 3. If you need to use older versions of Delphi - you can use 1.9 and periodically re-compile the TZ database from IANA.
My plan is to finish up 2.0 in the next month or so. Hopefully this will be stable enough that I don’t have to touch the source code for a while (unless rebuilding the database).
If you have any long standing issues or requests use here to submit them. I will gladly consider any request and will prioritize accordingly.