1. 序言
時間字段在Metabase顯示的時區,受Metabase本身配置時區、JVM時區和集成數據源時區影響。任何一個地方配置不對,或者三個地方配置的不一致都會導致時間字段顯示和配置時區不符。
2. 配置時區
2.1 Metabase時區配置
Metabase中管理員賬號可以配置時區。 如下圖所示,在報表時區中選擇時區。東八區的時間,Matabase里沒有Asia/Shanghai,可以選擇Asia/Hong_Kong。

2.2 數據源時區配置
Metabase集成數據源時區需要和Metabase保持一致。比如Metabase集成了ClickHouse,ClickHouse的配置文件config.xml中增加如下時區配置信息。
<timezone>Asia/Hong_Kong</timezone>
2.3 JVM時區配置
Metabase后台運行在JVM之上,JVM的時區可以在Metabase啟動時,通過指定環境變量配置。
-e "JAVA_TIMEZONE=Asia/Hong_Kong"
3. 總結與思考
使用Metabase官方鏡像部署時,系統默認時區是UTC,JVM默認時區和系統時區一致。Metabase啟動時如果不指定JVM時區,報表中時間維度顯示的時區就會和配置的不一致,排查時區顯示的問題也很容易忽略JVM的時區。
