2011-05-23 49 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];