Java正则表达式截断时间戳值

时间:2015-05-05 06:06:46

标签: java regex datetime timestamp truncate

Input    : 2007-02-09 00:00:00.0

Expected : 2007-02-09

我们如何使用Java正则表达式截断00:00:00.0

3 个答案:

答案 0 :(得分:2)

你可以做到

String a="2007-02-09 00:00:00.0";
String b=a.split("\\s")[0];
System.out.println(b);         // 2007-02-09

Demo

您也可以使用SimpleDateForMat

String a = "2007-02-09 00:00:00.0";
Date myDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(a);
System.out.println(myDate);
String formattedDate = new SimpleDateFormat("yyyy-MM-dd").format(myDate);
System.out.println(formattedDate);        // 2007-02-09

Demo

答案 1 :(得分:0)

提示:

  
      
  1. 使用indexOf([space])substring(index+1)方法(无需正则表达式)。
  2.   

如果你喜欢正则表达式使用:

  
      
  1. String#replaceAll() - >捕获一切直到空间,然后用捕获的组替换所有内容。
  2.   

答案 2 :(得分:0)

试试这个:

String s = "2007-02-09 00:00:00.0";
System.out.println(s.replaceAll("\\s\\d{2}:\\d{2}:\\d{2}\\.\\d*", ""));

这将用什么都不替换timepart,所以你得到了预期的结果。