2017-10-11 5 views
-1

私は '2017-01-01 00:00:00'をUR1に渡す必要がありますが、と%20があるので、私は最初に2017-01-01 00:00:002017-01-01%2000:00:00に変換する必要があります。私は分割や他の方法でこれを簡単に行うことができますが、javaが組み込みの関数を提供するのであれば混乱します。Java: '2017-01-01 00:00:00'から '2017-01-01%2000:00:00'に変換しますか?

UPDATE: 貴重なdownvoteと答えてくれてありがとうしかしURLEncoder.encode2017-01-01+00%3A00%3A00ない2017-01-01%2000:00:002017-01-01 00:00:00を変換し、downvotersによって提供されたリンクは、どちらかの助けをdidnot。 と私は2017-01-01 00:00:00とディスクにこの日付を保存する必要があり、私は再びそれをデコードしたくないとまた、サーバー上でこの特定のフォーマットを許可する厳密な正規表現チェックがあり、彼らはurldecodeに気をつけなかったので、フォーマット、すなわち '2017-01-01%2000:00:00`を与え、それ以外は何も与えない。 確かに私は%20の空白に置き換えて簡単にすることができますし、すべてが問題なく、そして私はフォーマットを提供することができ、フォーマットされた値を返すようなこの変換を行うJava関数があるかどうか尋ねました。これは愚かに聞こえるかもしれませんが、私はこれが可能かどうか尋ねました。

+0

純粋 'STRING'たり、入力されています「Date」や「​​LocalDateTime」などのリアルタイムオブジェクト – Al1

答えて

1

あなたはURLEncoderを使用することができます...

String encoded = URLEncoder.encode("2017-01-01 00:00:00", "UTF-8") 

または代わりに使うのApache HTTPクライアントのURIBuilder構築するための完全なURIは、例えば:

URIBuilder uriBuilder = new org.apache.http.client.utils.URIBuilder("http://host/endPoint"); 
uriBuilder.addParameter("parameterName", "2017-01-01 00:00:00"); 
String url = uriBuilder.toString(); 
関連する問題