2012-04-15 172 views
0

我写这段代码转换串时间戳:时间戳格式匹配

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 

ie ie not need the0.0 the end

请建议

感谢,

+0

为什么不只是从一个转换到另一个呢?这不仅仅对你有帮助吗?您可以将时间戳转换为日期,或者其他方式... java.sql.Timestamp sqlTimeStamp = new java.sql.Timestamp(date.getTime()); 如果这还不够,请您详细说明一下吗? – 2012-04-15 09:12:39

回答

0

format()的输出始终是一个String。你到底在这里寻找什么?

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

+0

嗨,在数据库端,数据类型是时间戳,我将执行此时间戳插入查询。据你介绍,由于字符串代表我得到了额外的“.0”。因此,如果我在启动此线程时使用我在第一篇文章中编写的代码,然后执行插入的时间戳,那么它应该正常工作? – user182944 2012-04-15 05:34:09

1

您需要使用的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()); 

format()方法现在使用

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

正如我所说,我需要时间戳格式的最终​​转换,但使用格式,返回类型是字符串。请建议如何转换成java.sql.timestamp。 – user182944 2012-04-15 04:49:27

+0

你已经正确地转换了,但是当你打印时间戳的实例时,它的toString方法被执行了,其中涉及到第二部分 – 2012-04-15 11:34:34

0

再次使用自卫队这样

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

嗨,忘记了syso。我需要将字符串转换为时间戳并将其插入到数据库中。如果我使用格式,那么返回类型是字符串,而不是时间戳 – user182944 2012-04-15 04:54:05