Java 如何检查字符串是否为日期

Java 如何检查字符串是否为日期,java,date,date-format,Java,Date,Date Format,我需要对照所有可能的日期格式检查字符串,并且需要检查其有效日期 我面临的问题是,我无法预测日期格式,因为它是从其他一些网络来源获得的。一个例子是2012年9月21日东部时间1255 PM,但格式可能会有所不同。我建议您实现自己的解析方法,并使用正则表达式来确定应如何解析字符串。您不应该期望在不知道日期是哪一种格式的情况下解析具有任何格式的日期 就我个人而言,我会实现类似这样的东西(不过,我已经有一段时间没有编写Java了): 等等 建议如下: 要求提供专用API。比刮网好多了。 public

我需要对照所有可能的日期格式检查字符串,并且需要检查其有效日期


我面临的问题是,我无法预测日期格式,因为它是从其他一些网络来源获得的。一个例子是2012年9月21日东部时间1255 PM,但格式可能会有所不同。

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

就我个人而言,我会实现类似这样的东西(不过,我已经有一段时间没有编写Java了):

等等

建议如下:



要求提供专用API。比刮网好多了。
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;
}