为什么不正确地解析以下iso格式日期?
GET /find?account.create_date=2016-06-01T00:00:00.000+05:45
在控制器中,如果我打印queryString
,我会得到以下结果:
println(request.queryString)
//result - Map(account.create_date -> Buffer(2016-06-01T00:00:00.000 05:45))
您可以看到,时区标志缺失05:45
而不是+05:45
。但是,负时区工作得很好。 2016-06-01T00:00:00.000-05:45
已成功解析。
答案 0 :(得分:0)
这是因为ISO日期格式不符合URL编码(RCF-3896特别用于空格和:字符)。 Playframework将自动对您在URL中传递的查询字符串进行URL解码。
正确的日期时间字符串应该是
GET /find?account.create_date=2016-06-01T00%3A00%3A00.000%2B05%3A45
您可以在此处详细了解网址编码:https://en.wikipedia.org/wiki/Percent-encoding