Работа с Timestamp

235
02 декабря 2017, 09:08

В базе хранится дата в формате TIMESTAMP. В базе записана вот эта дата

2010-12-04 01:45:06

Выбирается поле вот так. Естественно поле в java имеет тип тоже timestamp.

resultSet.getTimestamp("timestamp")

Затем в формате json клиенту возвращается вот это:

2010-12-04 01:45:06.0

а надо, чтоб вернулось вот в таком формате:

2010-12-03T17:45:06Z

Если использовать

timestamp.toLocalDateTime()

то возвращается вот это:

2010-12-04T01:45:06

Если использовать

timestamp.toInstant()

то возвращается:

2010-12-03T22:45:06Z

И в обоих случаях запись имеет неверное время. Что делать?

Answer 1

Вы не совсем верно понимаете, похоже то что вы хотите получить. Если в конце стоит Z - это означает время в универсальном формате (то есть мировое время, приведенное к 0-му меридиану), поэтому у вас время и отличается.

А в БД у вас время в каком часовом поясе хранится?

Z stands for Zulu time, which is also GMT and UTC.

По хорошему надо делать так.

//готовим формат вывода
private final static String ISO_8601_FORMAT_STRING="yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
DateFormat dateFormat = new SimpleDateFormat(ISO_8601_FORMAT_STRING, Locale.ENGLISH);
TimeZone utcTimeZone=TimeZone.getTimeZone("UTC"); //задаем часовой пояс
dateFormat.setTimeZone(utcTimeZone);
//выводим
Timestamp myTimestamp; //таймстемп из БД
String s=dateFormat.format(myTimestamp); //собственно вывод
READ ALSO
Некорректно отображается datepicker

Некорректно отображается datepicker

Добрый день, вот такого рода проблема :

226
JSON не работает под IE 11

JSON не работает под IE 11

Доброго времени сутокНужна ваша помощь в моей проблеме

232
json взять объекты из массива jquery

json взять объекты из массива jquery

В jquery полный ноль, прошу прощения за возможно нелепый вопрос

321
Помогите найти ошибку в head

Помогите найти ошибку в head

Всем привет, в общем дали проект на версткуРуководитель вечно чем то недоволен, говорит опять говнокод пишешь

296