【问题标题】:PostgreSQL UTC to UK Local TimesPostgreSQL UTC 到英国当地时间
【发布时间】:2019-08-25 03:42:40
【问题描述】:

我正在使用 postgreSQL 10.1。

我有在 UTC 中创建的日期时间,在没有时区列的时间戳中。 我需要将它们作为每个(GMT 或 BST)的正确英国当地时间返回。

我一直在尝试 AT TIME ZONE,而 BST/GMT 时区似乎固定为它们自己的偏移量,无论时间戳发生在一年中的什么时候。

AT TIME ZONE 'UTC' AT TIME ZONE 'Europe/London' 似乎给了我我想要的东西,正确地将 UTC 时间戳显示为 GMT 或 BST(在我尝试过的小样本中),虽然我可以'找不到关于夏令时规则的正确记录的这个时区。

谁能指出我正确的方向或可靠的替代方案?

【问题讨论】:

    标签: postgresql timezone


    【解决方案1】:

    你的解决方案是正确的:

    AT TIME ZONE 'UTC' AT TIME ZONE 'Europe/London'
    

    第一个将 UTC 分配给时间戳,第二个将 UTC 转换为 Europe/London 时区。

    Postgres documentation 状态:

    ... PostgreSQL 使用广泛使用的 IANA (Olson) 时区数据库来获取有关历史时区规则的信息。 ...

    它还支持其他形式的时区,在同一文档中引用,但Europe/London 是 IANA 时区。您可以在 IANA 时区列表here 中看到它。您还可以通过检查 TZDB 源 here 来查看如何定义此时区的详细信息,或者查看更易于阅读的伦敦时间变化历史 here

    【讨论】:

      猜你喜欢
      • 2021-03-20
      • 2018-01-25
      • 1970-01-01
      • 1970-01-01
      • 2011-09-03
      • 2016-02-15
      • 2020-01-13
      • 2020-04-28
      • 1970-01-01
      相关资源
      最近更新 更多