2015-05-05 50 views
0
Input : 2007-02-09 00:00:00.0 

Expected : 2007-02-09 

如何使用Java正则表达式截断00:00:00.0Java正则表达式截断时间戳值

+1

1)你不需要为正则表达式。 2)你有什么尝试? – Seelenvirtuose

+0

为什么你想使用正则表达式。使用'SimpleDateFormat' – Jens

+0

尝试使用正则表达式来截断空格后的字符,但我没有得到我的预期 – Prabu

回答

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

+0

谢谢,当我们尝试产生一个NullPointerException字符串publicationDate1 = portfolioDetails.get(4); \t \t String publicationDate = publicationDate1.split(“\\ s”)[0]; \t \t assetPortfolio.put(“publicationdate”,publicationDate); – Prabu

+0

@Prabu打印并检查'publicationDate1'的值我认为它的'null' – silentprogrammer

+0

是的,它是空的,谢谢 – Prabu

0

提示:

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

如果您在使用正则表达式弯曲:

  • String#replaceAll() - >捕捉一切,直到空间,然后替换为拍摄组的一切。
  • 0

    试试这个:

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

    这将替换什么也没有timepart,让您得到预期的结果。