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

Groovy中按预定义模式拆分解析字符串并转换格式的方法

Groovy 固定长度字符串拆分转指定格式实现方法

针对你提出的8位日期字符串"20210819"转"08/19/2021"的需求,Groovy有两种常用实现方案:

方案1:字符串下标切片拆分(通用字符串拆分场景)

Groovy原生支持字符串下标范围取值,写法非常简洁,不需要引入额外依赖:

String value = "20210819"
// 按规则拆分后拼接:[4-5位月份]/[6-7位日期]/[0-3位年份]
String targetFormat = "${value[4..5]}/${value[6..7]}/${value[0..3]}"
// 输出结果为 08/19/2021

使用该方法前建议先校验字符串长度是否为8位,避免下标越界,示例校验逻辑:

if (value?.length() == 8) {
    // 执行转换逻辑
} else {
    // 自定义异常/默认值处理
}

方案2:日期格式化工具转换(日期类字符串专用场景)

如果确认拆分的字符串是合法日期格式,用JDK自带的日期格式化工具处理更规范,还可以自动校验日期合法性:

import java.time.LocalDate
import java.time.format.DateTimeFormatter

String value = "20210819"
// 定义输入、输出格式模板
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyyMMdd")
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("MM/dd/yyyy")
// 解析后转目标格式
String targetFormat = LocalDate.parse(value, inputFormatter).format(outputFormatter)

如果输入的字符串不符合日期规则(比如月份为13、日期为32等),该方法会抛出解析异常,适合需要数据校验的业务场景。

内容的提问来源于stack exchange,提问作者M-A Charlotte

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:57:02