В основном я пытаюсь преобразовать строковые данные в формат Timestamp. Когда я преобразовал данные в формат метки времени, SimpleDateFormat добавил три минуты. Потому что миллисекундные данные равны 3 минутам. Но я хочу сохранить миллисекундные данные по значению метки времени.
Код:
public Double TimestampTest(String Timestamp ){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date parsedDate = null;
try {
parsedDate = dateFormat.parse(Timestamp);
} catch (ParseException e1) {
e1.printStackTrace();
}
Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime());
...
}
Значение метки времени
2002-04-17 23:45:58.983
Для тестового примера
System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").parse("2015-04-22T19:54:11.219983Z"));
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS'Z'").parse("2015-04-22 19:54:11.219983Z"));
Результаты одинаковы для обоих из них
Wed Apr 22 19:57:50 EEST 2015
Wed Apr 22 19:57:50 EEST 2015
Потому что
219 983 milliseconds = 3.66638333 minutes
Подводя итог, я хочу сохранить данные ms. Есть ли способ это сделать?
SimpleDateFormat
имеет точность до миллисекунды - 3 цифры после запятой. Если их больше 3, вы получите странные результаты: stackoverflow.com/q/36055717/7605325 - stackoverflow.com/q/44979279/7605325 - person   schedule 09.07.2017