我需要将“2017-01-01 00:00:00”传递给URl,但我不能将浏览器代表space character
%20
,因此我需要先将2017-01-01 00:00:00
转换为2017-01-01%2000:00:00
URLEncoder.encode
。我可以使用拆分和其他方法轻松完成此操作,但如果java提供任何内置函数,我会感到困惑。
更新:
感谢宝贵的downvote和答案,但2017-01-01 00:00:00
转换
2017-01-01+00%3A00%3A00
到2017-01-01%2000:00:00
而不是2017-01-01 00:00:00
,而downvoters提供的链接也没有帮助。
我需要使用urldecode
将此日期保存在磁盘上并且我不想再次对其进行解码,并且在服务器上还有严格的正则表达式检查,它只允许这种特定格式并且它们并不关心<script>
$(function () {
$("input:checkbox").click(function () {
if ($(this).is(":checked")) {
var id = $(this).attr('id');
if (id) {
$("#txtPassportNumber").removeAttr("disabled");
$("#txtPassportNumber").focus();
}
} else {
$("#txtPassportNumber").attr("disabled", "disabled");
}
});
});
</script>
所以我的选择是使用那种格式,即'2017-01-01%2000:00:00`而不是别的;
当然我可以用%20做简单的替换空白,一切都会好的,然后我再次询问是否有任何java函数只进行这种转换,就像我们可以提供格式一样,它给我们返回格式化的值。这可能听起来很愚蠢然后再问我是否可能。
答案 0 :(得分:1)
您可以使用URLEncoder ...
String encoded = URLEncoder.encode("2017-01-01 00:00:00", "UTF-8")
或者使用Apache HTTP Client的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();