java通用日期转换(string 转 date)

来源:互联网 发布:网络关系成瘾 编辑:程序博客网 时间:2024/05/16 07:18

这是自己工作是写的一个工具类,记录下来,以后要用直接copy,这个工具主要实现的是将任意格式的字符串转换为data格式(当然,首先你的日期必须是个日期才行)

主要判定的规则是(年月日时分秒之间的分割均不能包含数据,否则转化出来的日期你懂的....嘿嘿),自己写的,可能有不足,见谅

/** * 将字符串转化为时间对象 *  * @param dateStr *            源字符串的格式 * @return */public static Date string2Date(String dateStr) {// 最终的char数组char[] dateChar = new char[1024];// 临时存放数字char[] temp = new char[5];// 存放时间格式对应字母char[] typeChar = { 'y', 'M', 'd', 'H', 'm', 's' };int t = 0;int tc = -1;int dc = 0;//判断是否进入下个类型boolean typeChange = true;// 遍历目标stringfor (int i = 0; i < dateStr.length(); i++) {char letter = dateStr.charAt(i);// 如果字母是数字if (StringUtil.isNumber(letter)) {temp[t] = letter;//是否进入下个数字if(typeChange) {tc++;typeChange = false;}t++;}if (!StringUtil.isNumber(letter) || i == (dateStr.length() - 1)) {for (int k = 0; k < temp.length; k++) {// 如果为空if ('\0' == temp[k]) {break;}dateChar[dc] = typeChar[tc];dc++;}if (!StringUtil.isNumber(letter)) {dateChar[dc] = letter;dc++;if(!typeChange) {typeChange = true;}}temp = new char[5];t = 0;}}String dateType = new String(dateChar);dateType = dateType.substring(0, dateType.indexOf("\0"));Date date = null;SimpleDateFormat format = new SimpleDateFormat(dateType.trim());try {date = format.parse(dateStr);} catch (ParseException e) {e.printStackTrace();}}

此工具亲测可用,已经在项目中使用了,有疑问可留言。

使用例子:

string2Date("2015年12月12日12点23分52秒");



1 0