如何将标准格式的时区转换为tz数据库的时间格式?

大男孩1337

我有一个返回“太平洋标准时间”等时区的api。

我想在“时区”中使用该格式。当我尝试

选择'2020-11-01T18:46:00':: timestamptz AT TIME ZONE'Pacific Standard Time'

我收到错误消息:无法识别时区“太平洋标准时间”

我需要“太平洋标准时间”看起来像“美国/太平洋”或“美国/洛杉矶”

我已经看到了Postgres内置的pg_timezone_names表,但是在其中找不到“ Pacific Stanard Time”。关于将其转换为可与Postgres一起使用的类型的任何建议?

马特·约翰逊·品特

根据问题聊天中的讨论,我们假设您的输入值是所有Windows时区标识符。

Windows和IANA标识符之间进行转换的真实来源是windowsZones.xml文件,它是Unicode CLDR项目的一部分

您可以使用Postgres的xml功能(例如xmlparse和)从此文件中解析必要的数据xmltable

CREATE TABLE zone_mapping AS
SELECT xmltable.*
FROM XMLPARSE (DOCUMENT '...put xml here...')
AS data,
xmltable('//mapZone[@territory = ''001'']'
  PASSING data
  COLUMNS
    windows_zone varchar PATH '@other' not null,
    iana_zone varchar PATH '@type' not null
);

然后,您可以查询它,或在您自己的查询中加入它,等等。

select * from zone_mapping;

结果将包含您要查找的值:

windows_zone              iana_zone
-----------------------------------------------
...
Pacific Standard Time     America/Los_Angeles
...

在这里工作(请单击顶部的运行)。

请注意,通过过滤到“ 001”区域(称为“黄金区域”),映射表将仅在Windows到IANA的方向上起作用。如果您需要朝另一个方向发展,那么它将变得更加复杂,因为您不仅需要考虑其他条目,而且还必须使用其他数据源扩展到所有IANA别名(链接)。

还要注意,在粘贴xml时,您需要将所有'字符替换''为查询。当前文件中只有一个。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将时间转换为标准格式并计算时差

如何将多个日期格式的字符串转换为时区格式的时间戳

Oracle如何将任何时区的时间戳转换为数据库服务器时区的日期

如何在mysql中使用时区将纪元时间转换为标准格式

如何将数据框转换为日期时间格式

如何将字符序列转换为日期格式以存储在数据库中?

Oracle-如何将日期时间转换为TZ格式?

我应该如何将任何类型的日期格式从数据库转换为这种格式“d/m/Y”?

如何将GET参数从自定义日期格式转换为数据库日期格式?

以tz数据库格式获取系统时区名称

如何将日期时间从 ISO 格式转换为 UTC 时区?

MomentJS:如何将特定时区和特定格式的时间转换为毫秒

如何将数据从长格式转换为宽格式

如何将日期格式“dd/mm/yy”转换为“yy/mm/dd”以插入mysql数据库?

Linux如何将时间格式转换为纪元时间?

是否将日期“ 1472120311221”转换为H2数据库中的日期时间格式?

mysql将字符串从数据库转换为时间格式whib查询

如何将数据框的日期和时间列转换为熊猫的日期时间格式?

如何将数据框列转换为日期时间格式以绘制时间序列

如何将python数据框时间戳转换为日期时间格式

将excel数据库转换为可重现的格式

如何将YYYY-MM-DDTHH:mm:ss.SSSZ格式的时间转换为默认时区?

JavaScript:如何将数字转换为时间格式

如何将时间戳转换为适当的日期格式?

如何将时间以分钟:秒格式转换为秒?

如何将时间戳转换为可读格式

如何将 Django 日期时间转换为 HighCharts 格式

如何将整数转换为varchar格式的日期时间

如何将日期时间格式转换为分钟-熊猫