【问题标题】:The server time zone value 'Ostereuropeische Zeit' is unrecognized [duplicate]服务器时区值“Ostereuropeische Zeit”无法识别[重复]
【发布时间】:2020-04-16 19:18:39
【问题描述】:

我有这个错误:

“服务器时区值 'Osteuropeische Zeit' 无法识别或代表多个时区。如果需要,您必须配置服务器或 JDBC 驱动程序(通过 serverTimezone 配置属性)以使用更具体的时区值利用时区支持。”

使用的操作系统是 Win 10,但它是作为德语版本安装的。我相信这就是问题所在。我已将显示语言设置为英语,但没有帮助。

谢谢!

【问题讨论】:

  • 我会尝试简单的小时符号:+01:00 表示与 UTC 的偏移量。另外时区列表:SELECT * FROM mysql.time_zone_name;

标签: mysql datetime jdbc timezone


【解决方案1】:

MySQL 使用 zoneinfo names -- based on political subdivisions -- 来命名时区。这些看起来像 'Europe/Helsinki''Europe/Athens' 而不是通用名称。为什么? zoneinfo 尝试处理日光和标准时间,而这些规则取决于所述政治细分。

所有这些 zoneinfo 内容都内置于 UNIX 派生的操作系统中,因此在 Linux 上运行的 MySQL 服务器透明地使用这些时区。 Zoneinfo 没有内置在 Windows 中,因此如果您的 MySQL 服务器 在那里运行,您必须自己设置服务器时区查找表,with this procedure

您可以通过多种方式设置 MySQL 默认服务器时区。查找如何执行这些操作。这些是一些方法。

  1. my.cnf, MySQL's configuration file
  2. 在您的 JDBC 连接字符串中添加一个参数,例如 &serverTimezone=Europe/Helsinki
  3. 建立 MySQL 连接后,提供 SQL 命令 SET time_zone='Europe/Helsinki'(或任何您需要的)。

您也可以在您的 Java 程序中进行设置。看看如何做到这一点。

MySQL 的内部TIMESTAMP 数据类型以及NOW() 等函数的值本质上是UTC。但是 MySQL 会将它们从 UTC 转换为您选择的显示时区,并在存储时将它们转换为 UTC。

因此,在许多应用程序(例如 WordPress)中,时区设置是用户偏好。

【讨论】:

    猜你喜欢
    • 2020-03-05
    • 2018-09-06
    • 2019-02-26
    • 2019-12-04
    • 2021-07-24
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多