如何从String中删除一些字符

时间:2011-05-23 06:06:45

标签: java

我将以这种格式获得约会:

2011-05-23 6:05:00

如何从此字符串中仅获取2011-05-23?

10 个答案:

答案 0 :(得分:6)

可以只取第一个空格的索引并使用substring

int firstSpace = text.indexOf(' ');
if (firstSpace != -1)
{
    String truncated = text.substring(0, firstSpace);
    // Use the truncated version
}

如果没有空格,你需要弄清楚你想做什么。

但是,如果它是特定格式的有效日期/时间并且您知道格式,我会用 格式解析它,然后只使用日期组件。 Joda Time可以很容易地只使用日期部分 - 而且是一个通常更好的API。

编辑:如果您的意思是您已经 拥有Date个对象并且您尝试以特定方式对其进行格式化,那么SimpleDateFormat就是您的朋友Java API - 但同样,我建议使用Joda Time及其DateTimeFormatter类:

DateTimeFormatter formatter = ISODateTimeFormat.date();
String text = formatter.print(date);

答案 1 :(得分:4)

使用SimpleDateFormat

parser = new SimpleDateFormat("yyyy-MM-dd k:m:s", locale);
Date date;

try {
  date = (Date)parser.parse("2011-05-23 6:05:00");
} catch (ParseException e) {
}

formatter = new SimpleDateFormat("yyyy-MM-dd");
s = formatter.format(date);

此外:

答案 2 :(得分:1)

标准方式将使用SimpleDateFormat

您也可以使用String操作完成此操作,如下所示

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

答案 3 :(得分:1)

您可以使用 -

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

答案 4 :(得分:0)

一个无效但蛮力的方法就是说

String s = "2011-05-23 6:05:00";
String t = s.substring(0,s.length-7);

或者不管是什么情况

答案 5 :(得分:0)

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

答案 6 :(得分:0)

最简单的方法:

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

答案 7 :(得分:0)

很多答案,但到目前为止还没有人使用正则表达式,所以我只需要用regexp发布答案。

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

答案 8 :(得分:0)

你走了:

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) { 
        }
    }
}

答案 9 :(得分:0)

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

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