【发布时间】:2012-09-15 14:33:32
【问题描述】:
我需要根据所有可能的日期格式检查字符串,并且需要检查其有效日期。
我面临的问题是我无法预测日期格式是从其他一些网络来源获得的。一个例子是September 21 2012 1255 PM ET,.但格式可能会有所不同。
【问题讨论】:
-
请求专用 API。比屏幕抓取好得多。
标签: java date date-format
我需要根据所有可能的日期格式检查字符串,并且需要检查其有效日期。
我面临的问题是我无法预测日期格式是从其他一些网络来源获得的。一个例子是September 21 2012 1255 PM ET,.但格式可能会有所不同。
【问题讨论】:
标签: java date date-format
我建议您实现自己的 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
【讨论】: