String类型的完整日期怎么截取年月日 去掉时分秒

String data="2021-02-24 24:21:00";

转换成2021-02-24

如果只是问题里的这种格式的话, 分割空格最简单了

@org.junit.Test
public void test01 () {
    try {
        String data = "2021-02-24 24:21:00";
        SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-MM-dd");

        String date = sdf.format (sdf.parse (data));
        System.out.println (date);
    } catch (ParseException e) {
        e.printStackTrace ();
    }
}

正确的做法应该是把String转换成Date对象,然后设置格式位yyyy-MM-dd对象然后在转换成String对象。直接截取是不可靠的。

data.subString(0,10);

1.data.substring(0, 10)

2.data.split(" ")[0]

3.用DateUtil转换成Date,然后再格式化为yyyy-MM-dd

        //格式化的逆过程:字符串 --> 日期  
        String data="2021-02-24 24:21:00";
        //使用自定义的格式
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
        //格式化
        String format = sdf2.format(date);
        System.out.println(format);

 
        String data="2021-02-24 24:21:00";
        //使用自定义的格式
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        //格式化
        System.out.println(format.format(date));

     SimpleDateFormat  好像是线程不安全的  

data.split("\\s+")[0];  //其实我想要的是这样子

直接截取前10位的可以吗

data.split(" ")[0]

data.substring(0, 10)