我想从动态日期时间的字符串中删除子字符串。
示例:
2019年11月19日,美国东部时间上午05:41:08
我需要:
2019年11月19日,美国东部时间上午5时这类字符串
我想从字符串中删除分钟和秒。
答案 0 :(得分:2)
您可以尝试用正则表达式替换字符串:
String input = "Nov 19, 2019 05:41:08 AM EST";
String output = input.replaceAll("\\b(\\d{2}):\\d{2}:\\d{2}\\b", "$1");
System.out.println(output);
此打印:
Nov 19, 2019 05 AM EST
也许更健壮的方法是返回Date
,LocalDate/LocalDateTime
,后者生成当前输出,并使用所需的新蒙版进行格式化。
答案 1 :(得分:2)
您可以使用正则表达式删除第一个:
和第一个空格之间的所有内容
String original = "Nov 19, 2019 05:41:08 AM EST";
String stripped = original.replaceAll(":.*? ", " ");
System.out.print(stripped); // prints Nov 19, 2019 05 AM EST
答案 2 :(得分:1)
如果您对RegEx不满意,可以使用以下解决方案:
public class Main {
public static void main(String[] args) {
String dateString="Nov 19, 2019 05:41:08 AM EST";
String requiredString=dateString.replace(dateString.substring(dateString.indexOf(':'),dateString.indexOf(' ',dateString.indexOf(':'))),"");
System.out.println(requiredString);
}
}
输出:
Nov 19, 2019 05 AM EST
还有许多其他方式,例如使用DateTimeFormatter