Java 时间戳格式匹配

Java 时间戳格式匹配,java,android,jakarta-ee,datetime,Java,Android,Jakarta Ee,Datetime,我编写了这段代码,用于将字符串转换为时间戳: String timeStamp = "2012-04-13 09:00:30"; try{ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); java.util.Date parsedDate = sdf.parse(timeStamp); System.out.println(parsedDate.to

我编写了这段代码,用于将字符串转换为时间戳:

String timeStamp = "2012-04-13 09:00:30";

    try{

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        java.util.Date parsedDate = sdf.parse(timeStamp);
        System.out.println(parsedDate.toString());
        java.sql.Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime());
        System.out.println(timestamp.toString());           

    }catch (Exception e) {
        // TODO: handle exception
    }
我得到的结果是:

2012-04-13 09:00:30.0
但我希望输出是:

2012-04-13 09:00:30
i、 我不需要结尾处的.0

请建议


谢谢,

您需要使用
SimpleDateFormat

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    //parsing string to date
    java.util.Date parsedDate = sdf.parse(timeStamp);
    //invoking toString() method which has its fixed format output
    System.out.println(parsedDate.toString());
现在使用

    System.out.println(sdf.format(parsedDate));

像这样再次使用sdf

 System.out.println(sdf.format(parsedDate));
format()的输出总是一个字符串。你到底在这里找什么


您抱怨的“.0”仅存在于对象的字符串表示形式中。当它被插入数据库时,它是一个时间戳,而不是一个字符串。(当您直接查询数据库时,可能会或可能不会看到额外的小数;这取决于您如何编写SQL。)

正如我所说,我需要时间戳格式的最终转换,但使用格式,返回类型是字符串。请建议如何转换为java.sql.timestamp。您已经正确地转换了,但是当您打印timestamp的实例时,它的toString方法将被执行,这涉及到第二部分dhi,请忘记syso。我需要将字符串转换为时间戳,并将其插入数据库。如果我使用format,那么返回类型是字符串,而不是timestampHi,在db端,数据类型是timestamp,我将对此时间戳执行insert查询。根据您的说法,由于字符串表示,我得到了额外的“.0”。因此,如果我在启动此线程时使用我在第一篇文章中编写的代码,然后执行时间戳插入,那么它应该可以正常工作?为什么不从一个转换到另一个呢?这对你有帮助吗?您可以将时间戳转换为日期,反之亦然。。。java.sql.Timestamp sqlTimeStamp=new java.sql.Timestamp(date.getTime());如果这还不够,你能详细说明一下吗?