发个未指定格式的日期字符串转日期类型的代码!顺便散个分!

lip009 2008-09-25 11:05:16
刚看了个帖子问“java 能不能找到一个方法格式化日期 转变传来的字符串(未知格式)”
随即便写了这段代码,可惜楼主已经结贴,大家都看不见了!所以在这里共享一下代码!
原帖地址:http://topic.csdn.net/u/20080924/23/cdd10ccc-4740-4b97-ba50-72abda536d3f.html?seed=1002726286

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {

/**
* 测试类main方法 <br>
* Author:BluesLee <br>
* CreateDate:2008-9-23 <br>
* Modifier:BluesLee <br>
* ModifyDate:2008-9-23 <br>
* Version:1.1<br>
* All right reserved.<br>
*
* @param args
*/
public static void main(String[] args) {
Test test=new Test();
try {
System.out.println(test.parseStringToDate("03/2-3 03小时3:3").toLocaleString());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 将未指定格式的日期字符串转化成java.util.Date类型日期对象 <br>
* Author:BluesLee <br>
* CreateDate:2008-9-25 <br>
* Modifier:BluesLee <br>
* ModifyDate:2008-9-25 <br>
* Version:1.1<br>
* All right reserved.<br>
*
* @param date,待转换的日期字符串
* @return
* @throws ParseException
*/
public Date parseStringToDate(String date) throws ParseException{
Date result=null;
String parse=date;
parse=parse.replaceFirst("^[0-9]{4}([^0-9]?)", "yyyy$1");
parse=parse.replaceFirst("^[0-9]{2}([^0-9]?)", "yy$1");
parse=parse.replaceFirst("([^0-9]?)[0-9]{1,2}([^0-9]?)", "$1MM$2");
parse=parse.replaceFirst("([^0-9]?)[0-9]{1,2}( ?)", "$1dd$2");
parse=parse.replaceFirst("( )[0-9]{1,2}([^0-9]?)", "$1HH$2");
parse=parse.replaceFirst("([^0-9]?)[0-9]{1,2}([^0-9]?)", "$1mm$2");
parse=parse.replaceFirst("([^0-9]?)[0-9]{1,2}([^0-9]?)", "$1ss$2");

DateFormat format=new SimpleDateFormat(parse);

result=format.parse(date);

return result;
}
}
...全文
371 64 打赏 收藏 转发到动态 举报
写回复
用AI写文章
64 条回复
切换为时间正序
请发表友善的回复…
发表回复
lip009 2008-09-26
  • 打赏
  • 举报
回复
今天下班结贴
qintao1203 2008-09-25
  • 打赏
  • 举报
回复
不错!
jf!
yeah920 2008-09-25
  • 打赏
  • 举报
回复
又学了一招了。谢谢。
wangyi123 2008-09-25
  • 打赏
  • 举报
回复
学习,帮顶
bobod2008 2008-09-25
  • 打赏
  • 举报
回复
好东东,齐分享,我喜欢!!!!
lip009 2008-09-25
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 x____ 的回复:]
楼主 parse=parse.replaceFirst("^[0-9]{4}([^0-9])", "yyyy$1"); 中$1 是什么意思啊。。不是很了解。。介绍下。学习 up
[/Quote]
replaceFirst第一个参数是一个正则表达式^[0-9]{4}([^0-9]),其中()包起来部分是一个组,后便的$1是对正则中的第一个组的引用,也就是将匹配第一个组的字符串原样输出到$1的位置!依此类推$2代表第二个分组。。。
x____ 2008-09-25
  • 打赏
  • 举报
回复
楼主 parse=parse.replaceFirst("^[0-9]{4}([^0-9])", "yyyy$1"); 中$1 是什么意思啊。。不是很了解。。介绍下。学习 up
chris9999 2008-09-25
  • 打赏
  • 举报
回复
不错,谢谢LZ分享
風男 2008-09-25
  • 打赏
  • 举报
回复
收下下
谢谢楼主
fangsp 2008-09-25
  • 打赏
  • 举报
回复
支持
顶一个
dynastytan 2008-09-25
  • 打赏
  • 举报
回复
学习 接分
zhuyx808 2008-09-25
  • 打赏
  • 举报
回复
恩,就是这个方法
JJTwo 2008-09-25
  • 打赏
  • 举报
回复
jf 好東西。
shengli_liao 2008-09-25
  • 打赏
  • 举报
回复
楼主好人
x____ 2008-09-25
  • 打赏
  • 举报
回复
支持楼主 顶
笨沙发 2008-09-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 huangyangweiyue 的回复:]
收下,顺便接个分
[/Quote]jf
zhj92lxs 2008-09-25
  • 打赏
  • 举报
回复
mark
yctang 2008-09-25
  • 打赏
  • 举报
回复
支持楼主
yao491319436 2008-09-25
  • 打赏
  • 举报
回复
好心人,支持一下
lip009 2008-09-25
  • 打赏
  • 举报
回复
最新情况,加上此帖

社区活动情况统计 发帖数:6 被删帖总数:1 发帖的总分:1100
结帖数:4 无满意结帖数:0 结帖总分:700
结帖率:80.00% 无满意结帖率:0% 结分率:63.64%
未结帖数:1 马上去结帖
加载更多回复(44)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧