2011-05-23 53 views
2

我在这个格式得到一个日期删除一些字符:如何从一个字符串

2011-05-23 6:05:00 

如何从这个字符串只获得2011-05-23?

回答

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) { 
     } 
    } 
} 
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中的朋友 - 但同样,我推荐使用乔达时间,并将其DateTimeFormatter类:

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

标准的方式将使用SimpleDateFormat

您也可以使用String操作如下完成它

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

好无效,但蛮力的方法是说

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

或任何情况下应该是

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

最简单的方法:

字符串str = “2011-05-23 6点05分00秒”; str = str.subString(0,10);

0

很多答案,但目前为止还没有人使用过正则表达式,所以我只好用正则表达式发布一个答案。

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

您可以使用 -

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

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

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