首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

将字符串形式的时间转换成yyyy-MM-dd hh:mm:ss的形式(转换的结果也是字符串值)解决方法

2012-01-20 
将字符串形式的时间转换成yyyy-MM-dd hh:mm:ss的形式(转换的结果也是字符串值)将字符串形式的时间转换成yy

将字符串形式的时间转换成yyyy-MM-dd hh:mm:ss的形式(转换的结果也是字符串值)
将字符串形式的时间转换成yyyy-MM-dd hh:mm:ss的形式(转换的结果也是字符串值)
比如:
变量s的值的形式不确定,需要转换成字符串yyyy-MM-dd hh:mm:ss的格式
String s="2011";
String s="2011-8";
String s="2011-08-9";
String s="2011-8-9 9:10";
String s="2011-8-09 9:08:25";
......
需要转换成如下的字符串:
String s1="2011-01-01 00:00:00";
String s1="2011-08-01 00:00:00";
String s1="2011-08-09 00:00:00";
String s1="2011-08-09 09:10:00";
String s1="2011-08-09 09:08:25"
能不能写成一个统一的函数?

[解决办法]
如果你的字符串类型就这么有限的几种的话,就用暴力方法解决吧,5个字符串类型对应5种DateFormat然后逐个解析输出吧,进入一个字符串之后,判断哪个解析匹配成功,然后解析输出

或者是直接用正则表达分析字符串 然后解析输出

我没有发现更好的解决方案

[解决办法]
java代码 用 SimpleDateFormat 传两个参数 格式 要转换的值。
[解决办法]
java.sql.Timestamp nowTime=new java.sql.Timestamp(String str);

[解决办法]

Java code
public static void main(String[] args)throws Exception {        String arr[] = { "2011", "2011-8", "2011-08-9","2011-8-9 9", "2011-8-9 9:10",                "2011-8-09 19:08:25" };        for(int i=0;i<arr.length;i++){            String standard = toStandard(arr[i]);            System.out.println(standard);        }    }    static String toStandard(String str){        String[] dateTime = str.split("\\s");        String date = dateTime[0];        String time = dateTime.length>1?dateTime[1]:"";        return toStandardDate(date) +" "+ toStandardTime(time);    }    static String toStandardDate(String date){        String ymd[] = date.split("-");        String year = ymd[0];        String month = ymd.length>1?fill(ymd[1]):"01";        String day = ymd.length>2?fill(ymd[2]):"01";        return year +"-"+month+"-"+day;    }    static String toStandardTime(String time){        String[] hms = time.split(":");        String hh = hms.length>0?fill(hms[0]):"00";        String mm = hms.length>1?fill(hms[1]):"00";        String ss = hms.length>2?fill(hms[2]):"00";        return hh+":"+mm+":"+ss;    }    static String fill(String str) {        if(str.length() == 2){            return str;        }else if(str.length() == 1){            return "0"+str;        }else if(str.length() == 0){            return "00";        }        throw new IllegalArgumentException("参数不合法!");    }
[解决办法]
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date=format.parse(s);
String str=format.format(date);

热点排行