You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SoapUI中Groovy无需指定格式解析日期字符串的方法

在SoapUI中用Groovy自动解析未知格式的日期字符串

Groovy本身没有完全无需指定格式就能解析任意日期字符串的原生方法,但可以通过预定义常见格式列表,让解析器逐个尝试匹配的方式实现近似需求,以下是两种可行方案:

方案1:使用Java 8+时间API(推荐)

利用DateTimeFormatterBuilder构建支持多种格式的解析器,尝试匹配预定义的常见日期格式,代码示例:

import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
import java.time.format.DateTimeFormatterBuilder
import java.time.temporal.TemporalAccessor

// 待解析的日期字符串
def targetDateStr = "2024-05-20 15:40:00"

// 定义需要覆盖的常见日期格式,可根据实际场景补充
def commonFormats = [
    DateTimeFormatter.ISO_LOCAL_DATE,
    DateTimeFormatter.ISO_LOCAL_DATE_TIME,
    DateTimeFormatter.ofPattern("yyyy/MM/dd"),
    DateTimeFormatter.ofPattern("MM/dd/yyyy"),
    DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss"),
    DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm")
]

// 构建多格式解析器
def formatterBuilder = new DateTimeFormatterBuilder()
commonFormats.each { formatter ->
    formatterBuilder.appendOptional(formatter)
}
def multiFormatParser = formatterBuilder.toFormatter()

try {
    TemporalAccessor parsedResult = multiFormatParser.parseBest(targetDateStr)
    // 根据解析结果输出对应类型的日期
    if (parsedResult instanceof LocalDateTime) {
        println "解析结果(LocalDateTime):${parsedResult}"
    } else {
        println "解析结果(LocalDate):${parsedResult}"
    }
} catch (Exception e) {
    println "无法解析该日期字符串:${targetDateStr}"
    // 可选:打印异常详情排查问题
    // e.printStackTrace()
}

方案2:借助Apache Commons Lang工具类

如果SoapUI环境已包含Apache Commons Lang库(多数场景下自带),可以用DateUtils.parseDate方法直接传入格式列表进行解析:

import org.apache.commons.lang3.time.DateUtils

def targetDateStr = "05/20/2024"
// 预定义格式数组
def datePatterns = [
    "yyyy-MM-dd",
    "yyyy/MM/dd HH:mm:ss",
    "MM/dd/yyyy",
    "dd-MM-yyyy"
] as String[]

try {
    Date parsedDate = DateUtils.parseDate(targetDateStr, datePatterns)
    println "解析后的Date对象:${parsedDate}"
} catch (Exception e) {
    println "解析失败:${e.message}"
}

注意事项

  • 不存在能解析所有格式的"万能方法",只能通过扩展预定义格式列表覆盖更多场景
  • 优先使用Java 8+的LocalDate/LocalDateTime等新时间类,比旧的Date类更安全、易维护

内容的提问来源于stack exchange,提问作者rozza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 16:13:20