3

运行以下代码时,我得到一个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();
            }
        }

    }
4

4 回答 4

12

您对月份使用了错误的日期格式,您也应该使用与日期相同的分隔符。

如果你的日期字符串是格式"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 文档

MM--->一年中的一个月

mm---> 分钟

于 2013-04-02T09:14:01.190 回答
1
String startDateString = "2013-03-26";
DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); 

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

要么初始化 this asDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 要么 this asString startDateString = "2013/03/26";

也看看这篇文章

于 2013-04-02T09:14:04.227 回答
1

MM代替mm

-而不是/ ieyyyy-MM-dd就像您-在日期字符串中使用的那样

于 2013-04-02T09:16:04.167 回答
0

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

因为您的字符串日期是“2013-03-26”

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

SimpleDateFormat("yyyy/mm/dd")

于 2013-04-02T09:35:33.667 回答