Извините, я не знаю, как это сделать в PostgreSQL. В Java:
String timestampString = "/Date(1534291200000)/";
String millisString = timestampString.replaceFirst("^/Date\\((\\d+)\\)/$", "$1");
Instant inst = Instant.ofEpochMilli(Long.parseLong(millisString));
System.out.println(inst);
Выход
2018-08-15T00: 00: 00Z
Я использую регулярное выражение для проверки синтаксиса строки и удаления только подстроки цифр. Это число обозначается миллисекундами с эпохи. Класс Instant
из java.time, современного Java-API даты и времени, является правильным для использования в качестве метки времени (забудьте об устаревшем классе Timestamp
, он нам больше не нужен).
Если вам нужно сохранить это обратно в PostgreSQL:
PreparedStatement stmt = yourConnection.prepareStatement(
"insert into your_table(your_timestamp_column) values (?);");
stmt.setObject(1, inst);
Пожалуйста, измените ваш дизайн базы данных и ситуацию.
Ссылка: Обучающее руководство по Oracle: Дата и время , объясняющее, как использовать java.time
.