怎么忽略不符合指定日期格式的字符串,并把符合指定日期格式的转成标准日期格式

时间:2022-07-01 03:01:12
怎么忽略不符合指定日期格式的字符串,并把符合指定日期格式的转成标准日期格式?

比如下列文件内容里的日期都转成类似2015-05-12的格式,对于不符合被转换格式的能用正则表达式忽略吗(比如那个10/&&/1984)?(我想用正则表达式把不符合指定格式的忽略掉)

I married with her on 8/31/1985. Our fist baby is borned on 9/15/1986. 10/&&/1984 is a important day for us.

可以指定被转换日期的格式和转换到哪种日期的格式,比如(mm/dd/yy是被转换的格式,yyyy-mm-dd是转换后的格式),比如函数格式如下format_date("mm/dd/yy","yyyy-mm-dd")

3 个解决方案

#1


我就想用正则表达式了,请问怎么把文本里形如8/31/1985的字符串都取出来格式化掉,不符合这个格式的不动(比如8/31或者10/&&/1984)

#2


现在其他问题都解决了,就是“8/31/1985”不能正确转成时间格式,“31-8-1985”能正常转

这个7/20/1978时间格式的转出来是错误日期

String date = "7/20/1978"; 
try{
    Date dateDate = new SimpleDateFormat("MM/DD/YYYY").parse(date);
    System.out.println(dateDate);
}catch(Exception e){
}
}


这种20-07-1978格式就行

String date1 = "20-07-1978";
try{
    Date dateDate1 = new SimpleDateFormat("dd-MM-yyyy").parse(date1);
    System.out.println(dateDate1);
}catch(Exception e){
}

#3



                String date = "12/12/2012";
String newdate = date.replaceAll("/", "-");

SimpleDateFormat dateDate = new SimpleDateFormat("mm-dd-yyyy");
Date date2 = dateDate.parse(newdate);
String str = dateDate.format(date2);

                System.out.println(str);


这样就可以了啊

#1


我就想用正则表达式了,请问怎么把文本里形如8/31/1985的字符串都取出来格式化掉,不符合这个格式的不动(比如8/31或者10/&&/1984)

#2


现在其他问题都解决了,就是“8/31/1985”不能正确转成时间格式,“31-8-1985”能正常转

这个7/20/1978时间格式的转出来是错误日期

String date = "7/20/1978"; 
try{
    Date dateDate = new SimpleDateFormat("MM/DD/YYYY").parse(date);
    System.out.println(dateDate);
}catch(Exception e){
}
}


这种20-07-1978格式就行

String date1 = "20-07-1978";
try{
    Date dateDate1 = new SimpleDateFormat("dd-MM-yyyy").parse(date1);
    System.out.println(dateDate1);
}catch(Exception e){
}

#3



                String date = "12/12/2012";
String newdate = date.replaceAll("/", "-");

SimpleDateFormat dateDate = new SimpleDateFormat("mm-dd-yyyy");
Date date2 = dateDate.parse(newdate);
String str = dateDate.format(date2);

                System.out.println(str);


这样就可以了啊