不管我的时区的偏移量取决于一年中的时间,convert_timezone“美国/纽约”是否都能正常工作?

时间:2019-05-15 18:49:32

标签: timezone amazon-redshift timezone-offset

我的时区是格林尼治标准时间的-4或-5,具体取决于一年中的时间。当前是-4。

如果我在下面使用此代码,当我们更改为-5时会自动切换吗?

select convert_timezone('America/New_York', CAST(json_extract_path_text('{"timestamp":"2019-04-16T03:30:00.704Z"}', 'timestamp') as TIMESTAMP));

当前上面的行返回日期为2019-04-15。

但是,如果我在12月打这个电话(请注意时间为+1小时), 它仍会返回日期为2019-04-15。

select convert_timezone('America/New_York', CAST(json_extract_path_text('{"timestamp":"2019-04-16T04:30:00.704Z"}', 'timestamp') as TIMESTAMP));

换句话说,它会在没有干预的情况下在EDT和EST之间切换吗?还是有更好的方法?

谢谢

1 个答案:

答案 0 :(得分:3)

考虑:

    2019-04-16T03:30:00.704Z中的
  • America/New_York(UTC)是2019-04-15T23:30:00.704-04:00

  • 2019-04-16T04:30:00.704Z中的
  • America/New_York(UTC)是2019-04-16T00:30:00.704-04:00

  • 2019-12-16T04:30:00.704Z中的
  • America/New_York(UTC)是2019-12-15T23:30:00.704-05:00

在美国东部时间,4月的日期为-4,而12月的日期为-5。换句话说,要转换的时间戳就是确定要应用哪个偏移量的原因。

代码执行的日期和时间不相关