Java 带时区和SimpleDateFormat的不可解析日期

Java 带时区和SimpleDateFormat的不可解析日期,java,grails,timezone,simpledateformat,Java,Grails,Timezone,Simpledateformat,我正在尝试构建一个查询,以便能够按日期在字段中搜索。我试图在下面的代码中显示,但我遇到了以下错误: 阶级 信息 不可受理日期: "sun.util.calendar.ZoneInfo[id="BST",offset=21600000,dstSavings=0,useDaylight=false,transitions=8,lastRule=null]" 提前谢谢 if (params.dateFromQuery){ TimeZone timez = user.t

我正在尝试构建一个查询,以便能够按日期在字段中搜索。我试图在下面的代码中显示,但我遇到了以下错误:

阶级

信息 不可受理日期:

"sun.util.calendar.ZoneInfo[id="BST",offset=21600000,dstSavings=0,useDaylight=false,transitions=8,lastRule=null]"
提前谢谢

if (params.dateFromQuery){
                TimeZone timez = user.timeZone
                SimpleDateFormat sdfIn = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                SimpleDateFormat sdfOut = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String input = timez;
                Date date = sdfIn.parse(input);

                ge('startTime', sdfOut.format(date))
                params.dateFrom = sdfOut.format(date)
            }

根本不解析日期-解析时区的字符串表示形式:

TimeZone timez = user.timeZone 
String input = timez; //THIS IS WRONG
Date date = sdfIn.parse(input);
检查从何处检索输入-必须在查询中的某个位置

应该是这样的:

TimeZone timez = user.timeZone 
sdfIn.setTimeZone(timez);
String input = params.dateFromQuery; //from your webform
Date date = sdfIn.parse(input);
如果希望在解析/格式化时使用时区,则需要设置

sdfIn.setTimeZone(timez);
在解析/格式化该实例的日期之前

//Formatting time to set as 'startTime'. Which timezone to set here?
ge('startTime', sdfOut.format(date))

//Writing to input parameter?!
params.dateFrom = sdfOut.format(date)

“sun.util.calendar.ZoneInfo[id=“BST”,偏移量=2160000,DSTSAVIES=0,useDaylight=false,transitions=8,lastRule=null]”
与模式不匹配
“yyyy-MM-dd HH:MM:ss”
。它是时区的字符串表示形式,而不是时间。类似于这样的内容:timezone timez=user.timezone SimpleDateFormat sdfIn=new SimpleDateFormat(“dd/MM/yyyy HH:MM”);SimpleDataFormat sdfOut=新的SimpleDataFormat(“日/月/年/时:月”);字符串输入=timez;设置时区(timez);日期=sdfIn.parse(输入);ge('startTime',sdfOut.format(date))params.dateFrom=sdfOut.format(date)我得到了相同的错误…字符串输入=timez;这是邪恶的。您需要输入一个表示日期的字符串!我试图从gsp中获取输入数据:日期和时间来源:参见我的编辑->
input=params.dateFromQuery可能会帮助你。我想我很接近了。我现在有:无法将给定对象格式化为此行ge中的日期('startTime',sdfOut.format(input))
//Formatting time to set as 'startTime'. Which timezone to set here?
ge('startTime', sdfOut.format(date))

//Writing to input parameter?!
params.dateFrom = sdfOut.format(date)