java.util.Date date = new SimpleDateFormat("yyyy-MM-dd").parse(xxx); java.sql.Date create = new java.sql.Date(date.getTime());
java.util.Date date = new SimpleDateFormat("yyyy-MM-dd").parse(xxx); //格式化要转个的格式 java.sql.Date create = new java.sql.Date(date.getTime()); //然后根据根式生成日期
java.sql.Date create = new java.sql.Date(date.getTime());
java.sql.Date create = new java.sql.Date(date.getTime()); //然后根据根式生成日期
如果可以确定,那就判断split("-")后的数组长度,根据长度可以判断是那种格式,然后再去选择SimpleDateFormat实例化时候的构造参数。
private static void print(String date) throws Exception{
//默认的时间格式
String sign = "-";
//需要更多的自己添加
String regex ="[-|:]";
Matcher m = Pattern.compile(regex).matcher(date);
int len =0;
while(m.find()){
len ++;
sign = m.group();
}
if(len == 1){
date += sign+"01";
}
if(len == 0){
date += sign+"01"+sign+"01";
}
if(len > 2){
return ;
}
parse(date,sign);
}
private static void parse(String source, String sign) throws Exception{
java.util.Date date = new SimpleDateFormat("yyyy"+sign+"MM"+sign+"dd").parse(source); //格式化要转个的格式
java.sql.Date create = new java.sql.Date(date.getTime()); //然后根据根式生成日期
System.out.println(create);
}
试试这个
只能一个一个判断
不过个人认为只需要三种情况:
1985
1985-12 1985-1
1985-12-11 1985-1-1
根据这三种情况自己弄simpledateformat转化就行了