源数据月有些不规范,怎样处理之后统一变成yyyy-MM?

原始数据
2021-12至2022-2
2021-5至2021-7
2021-5至2021-7
2021-5至2021-7
2021-6至2021-8
2021-6至2021-8
2021-6至2021-08
2021-06至2021-8
2021-9至2021-11

清理之后
2021-11至2022-01
2021-12至2022-02
2021-05至2021-07
2021-05至2021-07
2021-05至2021-07
2021-06至2021-08
2021-06至2021-08
2021-06至2021-08
2021-06至2021-08
2021-09至2021-11

怎么用java实现?

这样就行了,我这直接输出,你自己封成方法return回来就行了

String str = "2012-08至2013-8";
String[] dateStr = str.split("至");
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM");
System.out.println(dateFormat.format(dateFormat.parse(dateStr[0])) + "至" + dateFormat.format(dateFormat.parse(dateStr[1])));

 

用工具类统一格式化一下,如果你要转json给前台的话,可以加注解 

@JsonFormat(pattern = "yyyy-MM-dd")

import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;
 
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
 
/**
 * Coding by 李炯 on 2019/9/25 19:37
 * 时间工具类
 */
@Slf4j
public class DateUtil {
 
    public static final String DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss";// 时间格式
    public static final String DEFAULT_FORMAT1 = "yyyy/MM/dd HH:mm:ss";// 时间格式1
    public static final String DEFAULT_FORMATS = "yyyy-MM-dd";
    public static final String DATE_FOMATE_YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
    public static final String Message_TIME = "yyyy年MM月dd日HH点mm分";
 
    /**
     * 格式化时间(Date 转换成String)
     *
     * @param date   时间
     * @param format 时间格式 如: DEFAULT_FORMAT= "yyyy-MM-dd HH:mm:ss"
     * @return 字符串
     */
    public static String format(Date date, String format) {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.format(date);
    }
 
    /**
     * 字符串格式化为时间
     *
     * @param dateStr  时间字符串
     * @param format 时间格式 如:DEFAULT_FORMAT1 = "yyyy/MM/dd HH:mm:ss";// 时间格式1
     * @return
     */
    public static Date parseDate(String dateStr, String format) {
        Date date = null;
        if (!StringUtils.isEmpty(dateStr)) {
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            try {
                date = sdf.parse(dateStr);
            } catch (ParseException e) {
                log.error(e.getMessage(), e);
            }
        }
        return date;
    }