Java:将'2017-01-01 00:00:00'转换为'2017-01-01%2000:00:00'?

时间:2017-10-11 10:28:07

标签: java datetime

我需要将“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%3A002017-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函数只进行这种转换,就像我们可以提供格式一样,它给我们返回格式化的值。这可能听起来很愚蠢然后再问我是否可能。

1 个答案:

答案 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();