-2

我正在尝试将 String 转换为 java Timestamp。我正在使用以下代码

SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy  HH:mm:ss:SSS");
Date parsedDate = dateFormat.parse(value);
Timestamp timestamp = new Timestamp(parsedDate.getTime());            
return timestamp;            

我的输入是 Input ::"10/01/2012 06:45:23:245946"

但我得到错误的输出 :: 2012-10-01 06:49:28.946

这段代码有什么问题??

4

3 回答 3

1
10/01/2012 06:45:23:245946

在这里你已经过了 245946 毫秒,它实际上被转换为秒和分钟,它变成了2012-10-01 06:49:28.946.

245946 milliseconds = 245 seconds and 946 milliseconds 
245 seconds 946 milliseconds = 4 minutes, 5 seconds and 946 milliseconds

so 06:45:23+ 4 minutes 5 seconds and 946 milliseconds = 
06 hour 49 minutes 28 seconds 946 miliseconds
于 2012-11-28T08:34:14.890 回答
0

Step1:解析给定的日期

Step2:使用以下构造函数获取绝对时间戳

java.sql.Timestamp timestamp = new Timestamp((year-1900), (month-1), date, hour, min, sec,nano);
于 2012-12-05T10:57:08.600 回答
0

没错,当您打印出来时,所有这些额外的毫秒都表示为完整的分钟和秒。您的输入包括 245946 毫秒,即 4 分钟、5 秒和 946 毫秒。因此,您的输出在 4 分 5 秒后显示为 946 尾随毫秒。

于 2012-11-28T08:30:55.607 回答