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());如果这还不够,你能详细说明一下吗?