Unix时间戳转换回夏令时


Unix Timestamp Conversion Back To Daylight Saving

看起来我有周一早上的病例!!!

设置

正如你所知,我的本地机器在东部时区,日光节约正在生效。这可以从下面的"日期"命令中看到。

date ; php -r 'echo mktime() .PHP_EOL ;'
Mon Apr 18 11:14:29 EDT 2016
1460992469

然后,我使用php生成了一个unix时间戳。它假设给出您的当前时间,并在1970年1月1日UTC 0:0:0将其转换为Unix epoch。

我的mysql会话被设置为UTC,我想1460992469表示为它被mktime转换为UTC。

问题

问题是转换回est无法识别夏令时。有人能帮我指出我逻辑上的缺陷吗。

SELECT CONVERT_TZ(FROM_UNIXTIME(1460992469), @@session.time_zone ,'EST') as converted_to_est , FROM_UNIXTIME(1460992469) , @@session.time_zone;
+---------------------+---------------------------+---------------------+
| converted_to_est    | FROM_UNIXTIME(1460992469) | @@session.time_zone |
+---------------------+---------------------------+---------------------+
| 2016-04-18 10:14:29 | 2016-04-18 15:14:29       | UTC                 |
+---------------------+---------------------------+---------------------+

我尝试在CONVERT_TZ中使用"EDT",但没有成功。

不要使用'EST'。使用'America/New_York'(假设美国)。