ST_TimeZone

获取点对象的时区信息。

语法

cstring ST_TimeZone(geometry point, boolean timezoneId, integer timezonePrecision);
cstring ST_TimeZone(geography point, boolean timezoneId, integer timezonePrecision);

参数

参数名称

描述

point

需要获取时区信息的几何对象,必须同时符合以下两个条件:

  • 点数据类型。

  • 空间参考系必须为WGS84(srid=4326)

timezoneId

用于指定返回时区的表达方式,取值范围如下:

  • true(默认),返回时区名称的字符串,如Asia/Shanghai

  • false,返回标准的GMT字符串,如Etc/GMT+8

timezonePrecision

timezone数据精度,在timezoneId为true时有效,取值范围如下:

  • 16(默认),精度为0.0055 度 (~500m)。

  • 21,精度为0.00017 度(~20m)。

返回值

返回时区值字符串。

描述

获取点数据类型的时区信息。时区地理边界数据来源于时区信息数据项目

示例

SELECT ST_TimeZone('SRID=4326;POINT(121 37)'::geometry);
----
Asia/Shanghai

SELECT ST_TimeZone('POINT(60 37)'::geography);
----
Asia/Tehran


-- 简单的字符串示例
SELECT ST_TimeZone('SRID=4326;POINT(121 37)'::geometry, false);
----
Etc/GMT+8


-- 添加timezone精度
SELECT ST_TimeZone('SRID=4326;POINT(-121 37)'::geometry, true, 21);
----
America/Los_Angeles


-- 经度大于180°
SELECT ST_TimeZone(('SRID=4326;POINT(400 37)'::geometry));
----
Europe/Istanbul