java中的日期转换(字符串到java.sql.Date)
问题描述:
在我的代码中,我必须将字符串值(输入)转换为java.sql.Date format
。我面临的问题是,输入日期格式未定义,并且可能是任何格式。例如,输入字符串可能是"Jan 10,2014"
或"01-10-2014"
或"2014/Jan/10"
。所以现在我需要将这个输入值转换成java.sql.Date(DD/MMMM/YYYY)
。有没有办法做这种转换?java中的日期转换(字符串到java.sql.Date)
答
这是不可能的。您可以不区分dd/MM/yyyy
和MM/dd/yyyy
。
你真的需要知道格式,否则你的程序可能不会按照你想要的方式行事。
答
尝试使用SimpledateFormat的上述所有模式的List
。
事情是这样的:
SimpleDateFormat format1 = new SimpleDateFormat("MMM dd,yyyy");
SimpleDateFormat format2 = new SimpleDateFormat("MM-dd-yyyy");
SimpleDateFormat format3 = new SimpleDateFormat("yyyy/MMM/dd");
// Note: be sure about the format, or else you may end up assigning incorrect values
List<DateFormat> list = new ArrayList<DateFormat>();
list.add(format1);
list.add(format2);
list.add(format3);
for (DateFormat format : list) {
try {
System.out.println(format.parse("Jan 10,2014"));
// Match found. Take action
} catch (ParseException exception) {
// Ignore. Try other pattern
}
}
为什么我们得到这么多的日期/串转换问题都没有在谷歌搜索???搜索'SimpleDateFormat' – sidgate
IMO您将需要指定您想要处理的所有日期格式,然后尝试分析每个日期格式。 –
出于兴趣,你怎么知道2014年10月1日是2014年10月1日,而不是2014年1月10日。如果你能影响你输入的数据格式,现在是时候这样做了,如果日期格式输入不受限制,您无法将其明确转换为日期。 – DaveH