2015-12-28 4 views
0

Когда значение String с дробными секундами передается в метод java.sql.Timestamp.valueOf(), где длина дробных секунд меньше 6, Метод valueOf добавляет конечные нули, которые изменяют значение дробной строки.Метод ValueOf() класса java.sql.TimeStamp возвращает ненужный вывод

public class TimestampTest { 
public static void main(String[] args) { 
Timestamp t = Timestamp.valueOf("2005-1-01 10:20:50.11"); 
} 
} 

valueOf - возвращает нано секунд, как - 110000000 -, который не является первоначальным значением.

Вместо этого следует добавить ведущие нули, как это сделано в случае метода toString().

Я ожидаю выход Просто «11» или «000000011»

Может кто-нибудь сказать мне, если я понимаю правильно, или я спутать некоторые где.

+1

Кажется, ОК для меня, 0.11 секунд - 110000000 nano секунд. – Henry

+1

Ну, ваше понимание неверно. Это часть секунды. 0.11 - 0.11, а не 0,000000011. –

ответ

2

Это дробь, поэтому функция ведет себя правильно.

0,11 = 0,110000 не 0,000011

Другими словами, 0,11 секунд, действительно 110,000,000 наносекунд.