参见英文答案 >
Parse any date in Java3个
无论当前系统日期格式如何,我都试图将日期字符串转换为java中的日期对象.因为我想让我的自定义日期格式存储在数据库中.以下是我的代码,请指教我.
无论当前系统日期格式如何,我都试图将日期字符串转换为java中的日期对象.因为我想让我的自定义日期格式存储在数据库中.以下是我的代码,请指教我.
public static String dateToString(String date){ if(date.equals("")) return ""; if(date == null || date.length() == 0){ return ""; } SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy"); try { Date l_date = format.parse(date); Calendar calendar = Calendar.getInstance(); calendar.setTime(l_date); String year = String.format("%04d",calendar.get(Calendar.YEAR)); String month = String.format("%02d",calendar.get(Calendar.MONTH)); String day = String.format("%02d",calendar.get(Calendar.DATE)); return year + month + day; } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); return ""; } }
对于SimpleDateFormat,它只能解析我听到的编码格式.
dateToString("16/04/2015");
它可以转换为上面的代码.但是,当我尝试使用以下格式
dateToString("Thursday,April 16,2015");
我去了Unparseable日期:“2015年4月16日星期四”错误.
解决方法
您正在尝试使用dd / MM / yyyy格式转换EEEE,MMMM dd,yyyy格式的字符串…
首先使用您尝试转换的String的正确格式,使用您希望将其转换回来的格式…
SimpleDateFormat from = new SimpleDateFormat("EEEE,yyyy"); SimpleDateFormat to = new SimpleDateFormat("dd/MM/yyyy"); String value = to.format(from.parse(dateString));
现在你可以使用像DateUtils.parseDate(String,String[])
这样的东西,允许提供许多不同的格式,但仍然限于你可能知道的.