完成更改应用程序时区的最佳方法是什么?在我看来,必须发生以下情况:
- 服务器 TZ 已被系统管理员更改
- mysql必须重新启动。
- 数据库中每个基于时间的列都必须使用convert_tz 或等效方法更新所有值。因此,要么必须编写一个 mysql 脚本,要么编写一个 grails 脚本来加载每个类的每一行,更新所有时间字段。
显然,在发生这种情况时应该关闭服务器,并且必须做好备份以防出现错误。
有没有更好/更简单的方法来做到这一点?
Java 在使用日期时不使用时区;它将所有内容存储为 UTC,并且仅在显示日期时使用时区。有关 java 日期/时间的讨论,请参阅以下链接。http://www.odi.ch/prog/design/datetime.php http://www.odi.ch/prog/design/datetime.php
- 如果您在 MySQL 中使用日期、时间或日期时间列类型,则时区并不重要。
- 如果您使用 TIMESTAMP 列类型,则时区可能很重要,因为 TIMESTAMP 存储为 UTC,但在检索和存储值时已完成转换。有关 MySQL 时区行为的讨论,请参阅http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html .
- 如果您担心在不同时区的多个服务器之间同步对象,事情会变得更加复杂,请参阅以下线程以获取对此的讨论。http://www.pubbs.net/201006/grails/2500-grails-user-how-to-get-gorm-to-store-dates-as-timestamp-in-utc-by-default-without-a-自定义-hibernate-mapping-or-joda-time-plu.html http://www.pubbs.net/201006/grails/2500-grails-user-how-to-get-gorm-to-store-dates-as-timestamp-in-utc-by-default-without-a-custom-hibernate-mapping-or-joda-time-plu.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)