我无法使用mysql中的CONVERT_TZ函数将GMT时区转换为PDT,而我可以将GMT / UTC时区转换为MET / GMT时区。
MySQL Query :
SELECT CONVERT_TZ('2004-01-01 12:00:00','UTC','Asia/Jakarta') AS time;
+---------------------+
| time |
+---------------------+
| 2004-01-01 19:00:00 |
+---------------------+
SELECT CONVERT_TZ('2015-10-21 12:50:00','GMT','PDT') AS time;
+------+
| time |
+------+
| NULL |
+------+
提前致谢。
答案 0 :(得分:2)
我刚注意到有一个PST8PDT
时区名称,是您要找的?
SELECT CONVERT_TZ('2015-10-21 12:50:00','GMT','PST8PDT') AS time;
答案 1 :(得分:1)
您不应使用三个字母的时区缩写。虽然有少数人受到支持,但总的来说有很多含糊之处。例如,CST有五种不同的解释。您可以查看the list on Wikipedia了解更多冲突示例。
此外,时区缩写通常仅指时区的部分。例如,太平洋时间在冬天使用PST,在夏天使用PDT。时区数据库中的某些条目尝试解释此问题(使用PDT规则指定PST时的白天时间),但其他条目是严格固定的偏移量且不切换。了解哪些是徒劳的。
您也不应该使用像PST8PDT
这样的时区,因为这些时区主要用于向后兼容旧的POSIX标准。这种时区风格的问题在于他们没有考虑任何变化的历史。时区会随着时间的推移而改变其规则,例如美国在2007年更改其DST规则,或者俄罗斯在2014年更改其标准抵消时等。如果您使用POSIX格式,则您的系统只能考虑一组规则。
您应该只使用基于位置的IANA tz标识符的时区。太平洋时间为America/Los_Angeles
。中心时间为America/Chicago
。有关其他示例,请参阅the list on Wikipedia。