有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAVA中的datetime将字符串转换为日期问题(日期解析)

我正在尝试将类似于“05/30/2012”的字符串转换为类似于“05/30/2012”的日期,我正在使用这些代码

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

Date d1=formatter.parse("05/30/2012");

System.out.println(d1);

但这些代码编译的结果是: “2012年5月30日星期三00:00:00” 我需要“2012年5月30日”

注意:我正在尝试将字符串转换为日期。我在数据库中有一个日期列。我不想改变它的格式。我只想要2012年5月30日在我的数据库中,但作为日期类而不是字符串。parse()方法正在将我的日期更改为另一种格式,我希望保留其格式

我已经解决了

java.sql.Date dd = new java.sql.Date(formatter.parse("05/30/2012").getTime());
System.out.println(dd);

现在的结果是:2012年5月30日


共 (6) 个答案

  1. # 1 楼答案

    然后需要使用format()方法

    顺便问一下,如果已经格式化了字符串,那么这里的转换点是什么

    如果您只说System.out.println(dateinstance);,那么它将调用Date类的toString()方法,该方法具有固定的格式

    因此,如果您只想将字符串转换为日期,那么可以使用parse()方法进行转换

    如果您想要从日期到字符串的格式转换,那么您需要使用format()方法

  2. # 2 楼答案

    试试看:System.out.println(formatter.format(d1));

  3. # 3 楼答案

    正如在解析日期时需要指定格式一样,在打印日期时也需要指定格式,否则将获得所看到的默认格式

    尝试:

    系统。出来println(格式化程序.格式(d1))

  4. # 4 楼答案

    DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
    Date d1=formatter.parse("05/30/2012");
    String out = formatter.format(date);
    System.out.println(out);
    

    parse方法将根据具有给定模式的字符串构建一个Date,但是您的System.out.println(d1); 将只调用一个Date.toString()

    要使用自定义格式打印Date,应使用SimpleDateFormatter.format返回所需字符串

  5. # 5 楼答案

    你的代码没有问题。解析日期,并在System.out.println()调用中使用Date.toString()的默认实现注意:日期不知道用于解析的格式

    要“修复”它,即做你想做的,写

    System.out.println(formatter.format(d1));
    

    相反

  6. # 6 楼答案

    试试这个:

    System.out.println(formatter.format(d1));