我们如何才能从字符串中删除并保留日期:
For ex: String outPut = {Time = 0:0:0} {Timestamp = Tue Oct 20 23:54:10 BST 2013}
我想只有日期
For ex: Tue Oct 20 2013
到目前为止,我尝试了以下方法:
String[] manipulateDate = output.getDate().split("\\{");
for(String s : manipulateDate ){
String outputDate = manipulateDate [2].replaceAll("\\}", "").replaceAll("\\s*\\bTimestamp =\\b\\s*","");
System.out.println(outputDate );
}
实现和使用Java Date / String的最佳方法是什么?
答案 0 :(得分:0)
要严格回答您的问题,您可以这样做:
String date = output.replaceAll(".*Timestamp = (.*)? \\d{2}:.*?(\\d{4}).*", "$1 $2");
但最好将整个字符串解析为日期对象:
String output = "{Time = 0:0:0} {Timestamp = Sun Oct 20 23:54:10 BST 2013}";
String timestamp = output.replaceAll("\\{.*?\\} \\{Timestamp = (.*)\\}", "$1"); //Sun Oct 20 23:54:10 BST 2013
ZonedDateTime dateTime = ZonedDateTime.parse(timestamp, DateTimeFormatter.ofPattern("E MMM dd HH:mm:ss z yyyy", Locale.ENGLISH));
从那时起,您可以使用日期对象执行所需操作,包括将其打印为字符串。请注意,我将原始字符串更改为星期日(在您的问题中与星期二相比):将其解析为日期也发现2013年10月20日不是星期四,这是字符串的另一个优势。