在LogicBlox的每个发行版中,有两个与支持的时区相关的CSV文件:
logicblox-4.x.x
|
└─share
|
└─logicblox
|
└─BlockResources
|
└─timezone
| date_time_zonespec_one_reg_per_tz_code.csv
| date_time_zonespec.csv
在构建使用时区的应用程序时,哪个是正确的?有效时区是否保存在我们可以打印的内部谓词中?
答案 0 :(得分:5)
主要的时区规范文件是date_time_zonespec.csv。此数据与datetime相关的内置函数一起使用,例如datetime:format,parse,create等。目前无法通过逻辑获取有效区域或时区代码列表。
文件one_reg_per_tz_code仅用于将时区代码(例如EST)映射到默认区域(例如America / New_York)。这个文件存在的原因是我们使用的低级日期时间库(boost)仅支持大多数时区符号作为输出,而不是输入。其原因在于,一些常见的时区符号令人惊讶地不是一组时区规则的唯一指示(例如,AST / ADT没有相同的规则,澳大利亚和美国使用EST)。遗憾的是,在实践中我们必须处理使用此类时区符号的数据,因此我们使用此csv文件将时区代码映射到一个指定一组唯一时区规则的特定区域。我们选择的默认映射可能不是您的应用程序所需的映射。
最好始终使用区域代码(例如America / New_York)以避免混淆。
我希望在中期我们会将日期时间和时区处理更改为其他库。一个原因是boost中的解析支持很差,但另一个原因是我们真的想要使用具有所有历史时区规则的时区数据库,而不仅仅是当前规则(由此spec文件指定)。