1

我想将字符串时间转换为时间戳对象

我的解析代码是这样的

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

请帮助我删除毫秒部分。

4

3 回答 3

3

Timestamp是一个毫秒的容器。它所包含的toString()格式是基于它认为最好显示的内容。

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

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

注意。你拥有的值(在你转换它之后)无论如何都不包含任何毫秒......

于 2012-09-26T04:47:22.440 回答
1

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

于 2012-09-26T05:10:07.060 回答
0

java.util.Date.getTime()根据其javaDoc的方法:

返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数

因此,当您创建 TimeStamp 对象时,您已经在传递毫秒数。

于 2012-09-26T05:02:38.673 回答