gpt4 book ai didi

mysql - Grails TimeZone 问题,明智的应用程序和表单实体

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:41:01 25 4
gpt4 key购买 nike

好吧,我遇到了一个我刚开始在 grails 应用程序中遇到的最奇怪的问题,该应用程序可以正常工作 2 个月。

应用程序部署在 Linux/Tomcat 6 上,MySQL 是后端的 DBMS。

当我在 linux 提示符下输入日期时,我得到以下输出:

$>日期太平洋标准时间 2010 年 8 月 8 日星期日 03:52:06

在 Grails 应用程序中,new Date() 会返回比当前系统日期晚 5 小时的日期。应用程序中显示的时区是格林威治标准时间。最初情况并非如此。无论如何,我确实在 Bootstrap 中将 TimeZone 默认设置为 GMT+5 并重新部署了应用程序,希望事情能得到解决。

现在 new Date() 已解决,但出现了一个新问题。对于具有日期字段的所有域类映射到某些数据库表,仅具有相应的属性日期。我在这样的 GUI 中得到一个日期:2010-08-08 05:00:00

注意 05 小时自动添加到日期字段,在数据库中字段中的值是 Date 只有没有时间信息,我实际上根本不需要时间信息,它应该是 00:00:00 因为它以前是在出现此问题之前。

是不是很奇怪。请帮助我,因为我已经迷路了,尝试了很多东西但没有找到解决方案。令人遗憾的是,一个完美无缺的应用程序在两个月后开始产生此类错误。

请帮忙,期待积极和快速的回​​应。

问候,阿拉姆谢尔

最佳答案

我的第一个问题是,如果您不关心时间,为什么要在 UI 中显示它?

看起来 Grails 假设数据库正在使用 GMT 并将日期加 5。您的数据库设置为哪个时区?应用程序和数据库应该是同步的。

如果您希望时间显示在 UI 上并且始终为零,您可以使用 Groovy 增强的 java.util.Date 类上的 clearTime() 方法将时间归零。看这里:http://groovy.codehaus.org/groovy-jdk/java/util/Date.html

请注意,我通常使用日历通过传入时区来创建日期:

def date = Calendar.getInstance(TimeZone.getTimeZone("CST")).time

关于mysql - Grails TimeZone 问题,明智的应用程序和表单实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3432380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com