2017-10-11 97 views
-1

我需要通過'2017-01-01 00:00:00'到URl,但我不能作爲瀏覽器代表space character%20,所以我需要先將2017-01-01 00:00:00轉換爲2017-01-01%2000:00:00。我可以使用split和其他方法輕鬆完成此操作,但如果java提供了任何內置函數,我很困惑。Java:將'2017-01-01 00:00:00'轉換爲'2017-01-01%2000:00:00'?

UPDATE: 感謝有價值downvote和答案,但URLEncoder.encode轉換 2017-01-01 00:00:002017-01-01+00%3A00%3A00而不是2017-01-01%2000:00:00和downvoters提供的鏈接,因此未幫助的。 我需要將這個日期保存在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(); 
相關問題