Java 从格式为2012-07-26 23:59:59的字符串中获取日期对象

Java 从格式为2012-07-26 23:59:59的字符串中获取日期对象,java,date,simpledateformat,Java,Date,Simpledateformat,我的输入字符串为2012-07-27,我希望输出为Date,但格式与2012-07-27 DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); try { Date today = df.parse("20-12-2005 23:59:59"); System.out.println("Today = " + df.format(today));

我的输入字符串为
2012-07-27
,我希望输出为
Date
,但格式与
2012-07-27

            DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
    try {
        Date today = df.parse("20-12-2005 23:59:59");
        System.out.println("Today = " + df.format(today));
                       //To Print Real Today 
                    System.out.println("Real Today = " + df.format(new Date()));

    } catch (ParseException e) {
        e.printStackTrace();
    }
代码 输出 但它是字符串对象,我想要与日期对象相同的输出(
20-12-2005 23:59:59
),而不是字符串对象

            DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
    try {
        Date today = df.parse("20-12-2005 23:59:59");
        System.out.println("Today = " + df.format(today));
                       //To Print Real Today 
                    System.out.println("Real Today = " + df.format(new Date()));

    } catch (ParseException e) {
        e.printStackTrace();
    }

如何以
DD-MM-YYYY HH:MM:SS
的形式获取
日期

今天的日期
是为输入
字符串
而获取的
日期
对象。Java中没有什么比格式化日期更好的了。日期始终只是日期对象。您可以对该日期对象执行各种操作,当您想存储(或)显示时,只需应用
format()

            DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
    try {
        Date today = df.parse("20-12-2005 23:59:59");
        System.out.println("Today = " + df.format(today));
                       //To Print Real Today 
                    System.out.println("Real Today = " + df.format(new Date()));

    } catch (ParseException e) {
        e.printStackTrace();
    }

传递给
SimpleDataFormat
的格式和传递日期字符串的方式不同。您还应该使用
HH

            DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
    try {
        Date today = df.parse("20-12-2005 23:59:59");
        System.out.println("Today = " + df.format(today));
                       //To Print Real Today 
                    System.out.println("Real Today = " + df.format(new Date()));

    } catch (ParseException e) {
        e.printStackTrace();
    }
该类有许多不推荐使用的方法,现在唯一正确的创建方法是使用long(详细信息请参阅文档)

            DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
    try {
        Date today = df.parse("20-12-2005 23:59:59");
        System.out.println("Today = " + df.format(today));
                       //To Print Real Today 
                    System.out.println("Real Today = " + df.format(new Date()));

    } catch (ParseException e) {
        e.printStackTrace();
    }
您应该研究在哪里可以将日历的一些常量字段作为属性传递

            DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
    try {
        Date today = df.parse("20-12-2005 23:59:59");
        System.out.println("Today = " + df.format(today));
                       //To Print Real Today 
                    System.out.println("Real Today = " + df.format(new Date()));

    } catch (ParseException e) {
        e.printStackTrace();
    }
如果您想从字符串中输入日期,我可以使用自定义解析器创建日历或类似的东西

            DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
    try {
        Date today = df.parse("20-12-2005 23:59:59");
        System.out.println("Today = " + df.format(today));
                       //To Print Real Today 
                    System.out.println("Real Today = " + df.format(new Date()));

    } catch (ParseException e) {
        e.printStackTrace();
    }

希望我能帮上忙:)

SimpleDateFormat.parse(String)
返回一个日期,
SimpleDateFormat.format(Date)
今天返回一个StringDate=df.parse(“20-12-2005 23:59:59”);这一行不会在您查找时为您提供日期字符串。顺便说一下,如果您使用的是
DateFormat df=new SimpleDateFormat(“yyy-MM-dd hh:MM:ss”),那么您的解析应该像
datetoday=df.parse(“2005-12-2023:59:59”)
和Date today已经是您的日期对象
            DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
    try {
        Date today = df.parse("20-12-2005 23:59:59");
        System.out.println("Today = " + df.format(today));
                       //To Print Real Today 
                    System.out.println("Real Today = " + df.format(new Date()));

    } catch (ParseException e) {
        e.printStackTrace();
    }