关于时间替换的疑问?用正则表达式怎么解决

需要将图一的starttime和endtime替换掉,也就是用正则的方式,但是小时、分钟和秒是以时间戳的方式显示(画蓝线部分)?该怎么处理?在使用正则的方式替换后跑出的结果为图三

img

url = url.replaceAll("starttime=[0-9\\-]*", "starttime=" + timeMap.get("yearstarttime"))
                .replaceAll("endtime=[0-9\\-]*", "endtime=" + timeMap.get("yearendtime"))

img

正则部分改一下
starttime=[0-9\-]*
改为 starttime=[^&]*

img

%3A是冒号转码了
16%3A29%3A39 应该是16:29:39

可以参考这篇文章https://blog.csdn.net/qq_42556623/article/details/121268418

url.replaceAll("starttime=[0-9\-\+%a-zA-Z:]&", "starttime=" + "2021-12-14" + "&" )
.replaceAll("endTime=[0-9\-\+%a-zA-Z:]
&?", "endTime=" + "2021-12-24" + "&" );