我正在尝试构建一个查询,以便能够按日期搜索字段。我尝试在下面的代码中显示,但我收到此错误:
类
java.text.ParseException
信息 无法解释的日期:
"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)
}
答案 0 :(得分:1)
您根本不解析日期 - 您解析时区的字符串表示形式:
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);
如果您希望TimeZone用于解析/格式化,则需要设置
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)