从列表中删除特定的单词/字符串

时间:2016-09-23 17:34:33

标签: java arrays string date

我们如何才能从字符串中删除并保留日期:

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的最佳方法是什么?

1 个答案:

答案 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日不是星期四,这是字符串的另一个优势。