如何修改日期格式以符合Groovy在Jenkins中的正确解析标准
解决方案
方案1:直接调整解析格式(推荐,无需修改原字符串)
你当前报错的核心原因是SimpleDateFormat中Z格式符仅支持匹配不带冒号的时区偏移(如+0000),而你拿到的日期时区是带冒号的+00:00格式,只需把格式串中的Z换成XXX即可直接解析,不需要做任何字符串替换:
Date myDate= new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX").parse("2020-01-01T10:10:20.578+00:00");
方案2:精准替换时区符号(适用于必须转成GMT前缀格式的场景)
如果你的业务场景要求必须把时区转成GMT+00:00格式,不要用全局替换+/-的方式,用正则正向预查精准匹配毫秒值后面的时区符号即可,只会替换时区部分的+/-,不会修改日期分隔符:
def myDate = "2020-01-01T10:10:20.578-06:00" // 仅匹配3位毫秒值后面的+/-符号进行替换 myDate = myDate.replaceAll("(?<=\\.\\d{3})([+-])", "GMT\$1")
替换后结果为2020-01-01T10:10:20.578GMT-06:00,符合要求。
内容的提问来源于stack exchange,提问作者Oplop98
相关产品推荐
相关产品推荐

