如何从String值创建Date对象

在运行下面的代码时,我得到了一个UNPARSABLE DATE EXCEPTION

我该如何解决?

  package dateWork; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateCreation { /** * @param args */ public static void main(String[] args) { String startDateString = "2013-03-26"; DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); Date startDate=null; String newDateString = null; try { startDate = df.parse(startDateString); newDateString = df.format(startDate); System.out.println(startDate); } catch (ParseException e) { e.printStackTrace(); } } } 

您在月份中使用了错误的dateformat,也应该使用与日期相同的分隔符。

如果您的日期字符串格式为"2013/01/03"

使用相同的分隔符/用于模式"yyyy/MM/dd"

如果您的日期字符串格式为"2013-01-03"

在你的模式"yyyy-MM-dd"使用相同的分隔符’ – ‘

  DateFormat df = new SimpleDateFormat("yyyy/mm/dd"); 

应该

  DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); 

来自SimpleDateFormat Doc

MM —>一年一个月

mm —>小时分钟

MM而不是mm

-而不是/yyyy-MM-dd因为你正在使用-在日期字符串中

 String startDateString = "2013-03-26"; DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); 

您正在使用与解析时不同的模式。

或者将其初始化为DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 或者这是String startDateString = "2013/03/26";

也看这篇文章

在SimpleDateFormat(“yyyy-mm-dd”)的构造函数中传递相同的格式字符串

由于你的字符串日期是“2013-03-26”

如果您的日期是“2013/03/26”使用

的SimpleDateFormat( “YYYY / MM / DD”)