2012-09-26 25 views
1

在时间戳解析时间戳其加入后的毫秒我想字符串时间转换为Timestamp对象在Java

我的解析代码是这样的

String ts = "120918 10:35:45"; 
SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd hh:mm:ss");   
java.util.Date parsedDate = dateFormat.parse(ts);   
//parsing timestamp 
Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime()); 
System.out.println("timestamp after parsing :: "+timestamp); 

它给我的结果是: - timestamp after parsing :: 2012-09-18 10:35:45.0

但我不想毫秒的一部分。我只想要这个 - 2012-09-18 10:35:45

请帮我删除毫秒部分。

回答

3

Timestamp是一个毫秒的容器。 toString()正在根据它认为最适合显示的内容对其进行格式化。

如果要格式化该值,则应使用日期格式化程序,而不要使用由Timestamp对象返回的值。

SimpleDateFormat noMilliSecondsFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
System.out.println(noMilliSecondsFormatter.format(timestamp)); 

nb。根据其的JavaDoc你(您已转换后)不包含任何毫秒反正值...

+0

+1您也可以在Timestamp中设置纳秒。 –

+0

我试过你的代码,但它返回的输出与输入相同(120918 10:35:45)。我只想在Timestamp对象中输出。像这样2012-09-18 10:35:45 – Anjali

+1

真的,我得到了'2012-09-18 10:35:45'这显然是你要求的。 'Timestamp'只是一个容器,包含1970年1月1日00:00:00 GMT的毫秒数。它没有格式的概念(不胜感激它显示它的作用,'1347928545000'会更加无用)。你可以使用的最好的方式是通过格式化程序来获取你想要的格式,这就是它的力量。你可以看看这个关于同一主题的前面的讨论http://stackoverflow.com/questions/12575990/calendar-date-to-yyyy-mm-dd-format-in-java/12576219#12576219 – MadProgrammer

0

的方法java.util.Date.getTime()

返回自1970年1月1日的毫秒数, 00:00:00 GMT 此Date对象

因此,当您创建Timestamp对象,你已经通过mileseconds表示。

1

我的猜测,可能你没有在println()中使用“noMilliSecondsFormatter”。