[size=small]前段时间遇到一个问题:输入一个不同格式的时间:如2010/09/09 or 2010-09-09 or 2010/09/09 09:09 ,程序都能够解析。而jdk中的DateFormat的parse方法只提供一个格式解析:[/size]
[size=small]此时就不能直接用jdk的方法了,本来打算自己写一个函数,后来发现使用apache commons 中的DateUtils类已经封装好了一个这样的方法:[/size]
[size=small]用法如下:[/size]
public Date parse(String source)
throws ParseException[size=small]此时就不能直接用jdk的方法了,本来打算自己写一个函数,后来发现使用apache commons 中的DateUtils类已经封装好了一个这样的方法:[/size]
public static Date parseDate(String str, String[] parsePatterns)
throws ParseException[size=small]用法如下:[/size]
import java.text.ParseException;
import org.apache.commons.lang.time.DateUtils;
public class DateFormatTest {
public static void main(String[] args) throws ParseException {
//需要匹配的格式
String[] parsePatterns = new String[] {
"yy/MM/dd HH:mm","yy-MM-dd HH:mm", "yy/MM/dd", "yy-MM-dd"
};
System.out.println(DateUtils.parseDate("2010-09-09 09:09", parsePatterns));
System.out.println(DateUtils.parseDate("2010/09/09 09:09", parsePatterns));
System.out.println(DateUtils.parseDate("2010/09/09", parsePatterns));
System.out.println(DateUtils.parseDate("2010-09-09", parsePatterns));
}
}
本文介绍了一种利用Apache Commons Lang库中的DateUtils类来解析多种日期格式的方法。通过指定一系列可能的日期格式,该方法能够灵活地处理各种输入格式,避免了使用JDK自带DateFormat类时只能处理单一格式的问题。

被折叠的 条评论
为什么被折叠?



