如何从String值创建Date对象

时间:2013-04-02 09:12:22

标签: java date-format simpledateformat date-formatting

运行以下代码时,我收到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 个答案:

答案 0 :(得分:12)

您在月份中使用了错误的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 --->一年中的一个月

毫米--->小时分钟

答案 1 :(得分:1)

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

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

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

also look this article

答案 2 :(得分:1)

MM代替mm

-代替/yyyy-MM-dd,因为您在日期字符串中使用-

答案 3 :(得分:0)

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

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

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

的SimpleDateFormat( “YYYY / MM / DD”)