Java 如何从字符串中删除某些字符

Java 如何从字符串中删除某些字符,java,Java,我得到的日期格式如下: 2011-05-23 6:05:00 如何从该字符串中仅获取2011-05-23?您只需获取第一个空格的索引并使用子字符串即可: int firstSpace = text.indexOf(' '); if (firstSpace != -1) { String truncated = text.substring(0, firstSpace); // Use the truncated version } 如果没有空间的话,你需要确定你想做什么 但是

我得到的日期格式如下:

2011-05-23 6:05:00
如何从该字符串中仅获取2011-05-23?

您只需获取第一个空格的索引并使用
子字符串即可:

int firstSpace = text.indexOf(' ');
if (firstSpace != -1)
{
    String truncated = text.substring(0, firstSpace);
    // Use the truncated version
}
如果没有空间的话,你需要确定你想做什么

但是,如果它是一个特定格式的有效日期/时间,并且您知道该格式,那么我将以该格式解析它,然后只使用日期组件。使只获取日期部分变得非常容易,并且是一个通常更好的API

编辑:如果您的意思是您已经有了一个
Date
对象,并且您正试图以一种特定的方式对其进行格式化,那么
SimpleDateFormat
是您在Java API中的朋友-但是,我再次建议您使用Joda Time及其
DateTimeFormatter
类:

DateTimeFormatter formatter = ISODateTimeFormat.date();
String text = formatter.print(date);
标准方法是使用

您还可以使用
String
操作完成它,如下所示

String result = str.substring(0,str.indexOf(" "));
使用:

此外:


    • 一种无效但暴力的方法是

      String s = "2011-05-23 6:05:00";
      String t = s.substring(0,s.length-7);
      
      或者不管是什么情况

      最简单的方法:

      str = "2011-05-23 6:05:00"
      str = str.substring(0,str.indexOf(" "));
      
      String str=“2011-05-23 6:05:00”;
      str=str.subString(0,10)

      有很多答案,但到目前为止还没有人使用过regexp,所以我只能用regexp发布一个答案

      String date = "2011-05-23 6:05:00";
      System.out.println(date.replaceFirst("\\s.*", ""));
      
      给你:

      import java.*;
      import java.util.*;
      import java.text.*;
      
      public class StringApp {
          public static void main(String[] args)
          {
              String oldDate = "2011-05-23 6:05:00";
              String dateFormat = "yyyy-MM-dd";
              try {
                  SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
                  Calendar cl = Calendar.getInstance();
                  cl.setTime(sdf.parse(oldDate));
                  String newDate = sdf.format(cl.getTime());
                  System.out.println(newDate);
              } 
              catch (ParseException ex) { 
              }
          }
      }
      
      你可以用-

      String arg="2011-05-23 6:05:00";
      String str=arg.substring(0,arg.indexOf(" ")); 
      

      另一个答案是使用正则表达式

      String dateTime = "2011-05-23 6:05:00";
      String date = dateTime.split(" ")[0];
      
      String dateTime = "2011-05-23 6:05:00";
      String date = dateTime.split(" ")[0];