0

我需要根据所有可能的 dateFormats 检查字符串,并且需要检查其有效日期与否。

我面临的问题是我无法预测日期格式,因为它来自其他一些网络资源。一个例子是September 21 2012 1255 PM ET,。但格式可能会有所不同。

4

1 回答 1

1

我建议您实现自己的 Parse 方法并使用正则表达式来确定应该如何解析字符串。您不应该期望在不知道它是哪种格式的情况下解析任何格式的日期。

就我个人而言,我会实现这样的东西(但话又说回来,我已经有一段时间没有编写 Java 代码了):

public SimpleDateFormat ParseDate(string s)
{
SimpleDateFormat parsedDate;
if(s.matches("0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/((19|20)\\d\\d"))
   parsedDate = new SimpleDateFormat("MM/dd/yyyy");
else if(s.matches([PATTERN2]))
   parsedDate = new SimpleDateFormat([DATE PATTERN 2]);
...
return parsedDate;
}

等等...

推荐阅读:

http://docs.oracle.com/javase/tutorial/essential/regex/
http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

于 2012-09-24T06:46:44.597 回答