TDengine 时区相关问题,基于版本 3.0.1.7
首先,TDengine 客户端会自动读取当前系统时区,保证 Windows 和 Linux 时区正确即可,无需进行任何配置。
若要配置,如何配置?
- 若要配置时区为东八区,在 Windows 下应配置 UTC+8,在 Linux 下应配置为 UTC-8 (据官方说是因为 Windows 和 Linux 的时区标准不同,这点存疑,个人认为 UTC 表示法不存在标准区分)
- 在 Windows 下,客户端配置文件目录为 C:\TDengine\cfg\taos.cfg,修改 timezone 属性为 UTC+8
- 在 Linux 下,客户端配置文件目录为 /etc/taos/taos.cfg,修改 timezone 属性为 UTC-8
注意:
- 不要在 url 后面或 application.yml 中配置时区(要做环境隔离),因为 TDengine 的 Linux 和 Windows 的时区标准是不同的。如果使用 ?timezone=UTC-8,则会造成在 Windows 下使用的是西八区(美国加州),Linux 下是正常的东八区。不同客户端修改该机器目录中的配置 taos.cfg 即可
- Mac 版本的 TDengine 客户端还没有进行测试,具体怎么配置请自行调试
- RESTful 连接不支持在 url 后面使用时区配置
提醒:
- 以上结论基于版本 3.0.1.7,后续版本是否依然按照这个规则来,需要自行测试
- 若只需要一种时区比如东八区,理论上只要机器的时区正确,TDengine 可以自动识别,也就是不要加任何时区配置
- 请始终保证 taos-jdbc 依赖为最新版本,这个驱动 bug 很多,会导致 mybatis 映射出问题