今天在做 Rss parser 的时候遇到的棘手问题,java中有什么通用的方法能把不同格式表示的日期字符串正确转换成Date类型,譬如:
"Sun Dec 04 00:30:55 CST 2005"
"Sun,04 Dec 2005 00:30:55"
"Mon, 18 Apr 2005 10:25:40 +0200"
"2005-12-04"
"2005-12-4 0:30:55"
.........
"Sun Dec 04 00:30:55 CST 2005"
"Sun,04 Dec 2005 00:30:55"
"Mon, 18 Apr 2005 10:25:40 +0200"
"2005-12-04"
"2005-12-4 0:30:55"
.........
解决方案 »
- 求 java 年月日 - 时分秒 加法(算法)
- 时间问题
- info =(Outer)out;怎么转型?
- 如何在线程中改变UI
- 关于SQL Server jdbc驱动问题,哪位大哥能帮帮忙,谢谢
- 哪里可以高速的下载jdk1.5?在sun主页下载太慢了!
- PrintWriter 的flush的用途(散分)
- java中多各类时提示找不到主类
- com.microsoft.sqlserver.jdbc.SQLServerException: 索引 2 超出范围。
- 如何初始化一个xml的dom树
- JTable 能实现undo redo功能吗?
- 请问怎样才能将一个Date对象的小时、分钟、秒去掉,得到一个只有日期的Date对象呢?顶者有分啊。
通用的方法没听说过,需要每种格式定义一个DateFormat的吧
org.apache.commons.lang.time
的有关的资料。
或者用简单的SimpleDateFormat。
{
GregorianCalendar gc = new GregorianCalendar();
SimpleDateFormat df = new SimpleDateFormat(fromFormat);
df.setTimeZone(gc.getTimeZone());
df.setLenient(false);
Date date = df.parse(dateString, new ParsePosition(0));
return date;
}
"Sun Dec 04 00:30:55 CST 2005"
"Sun,04 Dec 2005 00:30:55"
"Mon, 18 Apr 2005 10:25:40 +0200"
这些不行了。
SimpleDateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
System.out.println(df.parse(str)); str = "Sun, 04 Dec 2005 00:30:55";
df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss", Locale.ENGLISH);
System.out.println(df.parse(str)); str = "Mon, 18 Apr 2005 10:25:40 +0200";
df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.ENGLISH);
System.out.println(df.parse(str)); str = "2005-12-04";
df = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(df.parse(str)); str = "2005-12-4 0:30:55";
df = new SimpleDateFormat("yyyy-MM-dd H:mm:ss");
System.out.println(df.parse(str));
谢谢楼上各位兄弟,结贴啦