2017-08-03 5 views
0

次のiso形式の日付が正しく解析されないのはなぜですか?コントローラでPlayframework - 要求のクエリのparamのタイムゾーンがある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

これは、ISOの日付形式がURLエンコーディング(スペースと:の特殊文字を使用するRCF-3896)に準拠していないためです。 PlayframeworkはあなたのURLに渡すクエリーストリングを自動的にURLデコードします。

正しい日付時刻文字列が

GET /find?account.create_date=2016-06-01T00%3A00%3A00.000%2B05%3A45 

されている必要がありますが、ここでURLエンコーディングについての詳細を読むことができます:https://en.wikipedia.org/wiki/Percent-encoding

関連する問題