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

原文地址为: java通用日期转换(string 转 date)

这是自己工作是写的一个工具类,记录下来,以后要用直接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;

// 遍历目标string
for (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秒");




转载请注明本文地址: java通用日期转换(string 转 date)

猜你喜欢

转载自blog.csdn.net/dearbaba_8520/article/details/80839699