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秒");



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值