带时区和SimpleDateFormat的不可分析日期



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

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)
            }

您根本不解析日期,而是解析时区的字符串表示:

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)

相关内容

  • 没有找到相关文章

最新更新