似乎,Nodatime所使用的时区数据库文件是按年份命名的,同一年内的发布版本会增加一个 字母-即“ tzdb2019a.nzd”是我撰写本文时的最新版本 将是“ tzdb2019b.nzd”,并且某些以前的版本可能已经 “ tzdb2018a.nzd”,“ tzdb2018b.nzd”,“ tzdb2018c.nzd”等
但是,我在任何地方都找不到正式记录的命名约定,而且各种假设使我感到紧张。
我希望时区数据比我的应用程序更频繁地更改
已更新,因此应用程序会定期检查以下位置的最新数据文件:
https://nodatime.org/tzdb/latest.txt,如果其中的一个下载了新文件
用途是不同的。最终将在本地提供多个文件。
我想知道我可以按名称对它们进行排序,请放心,我可以 从已经存在的那些中识别出最新的 已下载。
答案 0 :(得分:2)
这就是我预期。我们使用IANA time zone page中的版本控制,只是带有一个tzdb
前缀和一个.nzd
后缀。到目前为止,这已经足够了,并且保持了排序顺序。
可能,我们可能希望在某个时候提供其他文件,例如如果长时间没有IANA更改(好像!),但是CLDR Windows映射文件发生了很大变化。在这种情况下,我没有具体的计划,但是我可以想象像tzdb2019-2.nzd
之类的东西。
在不知道提供其他文件的确切原因的情况下,很难提出具体的缓解措施,但是如果它们与tzdb\d{4}[a-z]+.nzd
的正则表达式匹配,则可能仅 个下载文件。
在进行此类操作之前,我当然会在Noda Time discussion group上进行交流,因此,如果在此订阅,您将得到事先警告。
另一个令人讨厌的可能性是,我们可能在一个日历年内需要发布26个以上的版本... IANA表示将在2020a ... 2020z,然后是2020za ... 2020zz等。上面的正则表达式处理了这种情况,保持正常排序。
我可以提供的另一种选择是“所有发行版”的XML或JSON格式-就像https://nodatime.org/tzdb/index.txt仅列出文件一样,我可以提供https://nodatime.org/tzdb/index.json列出文件并发布日期。如果您随文件一起保留该文件,则将始终有更多信息。让我知道您是否感兴趣,我将研究实施。