Как из timestamp извлечь временной сдвиг?

139
08 декабря 2019, 15:50

У меня есть объект Timestamp в который записано значение

    <DateTimeCalc>2019-03-18T03:00:00+03:00</DateTimeCalc>

Как сделать так, чтобы понять, что по GMT пришло пустое время 00:00:00 GMT, то есть без смещения чтобы обработать этот случай?

public boolean isManualCalc(Timestamp timestamp) {
        return timestamp.getHours() == 0 && timestamp.getMinutes() == 0 && timestamp.getSeconds() == 0;
    }

Но, этот код не учитывает смещения. Как извлечь из timestamp смещение чтобы timestamp.getHours() - сдвиг вернули ноль?

Потенциаально мне могу присылать значения

<DateTimeCalc>2019-03-18T02:00:00+02:00</DateTimeCalc>
<DateTimeCalc>2019-03-18T05:00:00+05:00</DateTimeCalc>

и так далее

Answer 1

Вот так попробуйте:

Timestamp aa=new Timestamp(); aa.getDate().getTimezoneOffset()

Взято из: https://docs.oracle.com/javase/7/docs/api/java/sql/Timestamp.html Methods inherited from class java.util.Date

Answer 2

Вообще Timestamp не содержит временного сдвига! Но если вам приходит строка с временным сдвигом, то вот что можно сделать:

ZonedDateTime zdt = ZonedDateTime.parse("2019-03-18T03:00:00+03:00");
// Дата и время с учетом зоны GMT
LocalDateTime gmt = LocalDateTime.ofInstant(zdt.toInstant(), ZoneId.of("GMT"));

А дальше смотрите на часы, минуты, секунды итд...

Если все же хотите использовать ваш метод с параметром Timestamp:

ZonedDateTime zdt = ZonedDateTime.parse("2019-03-18T03:00:00+03:00");
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
Timestamp timestamp = Timestamp.from(zdt.toInstant());
System.out.println("isManualCalc(timestamp) = " + isManualCalc(timestamp));
READ ALSO
Абсолютный путь и обычный

Абсолютный путь и обычный

Прочитал вот это: Полный или абсолютный путь — это путь, который указывает на одно и то же место в файловой системе, вне зависимости от текущего...

149
Как реализовать поиск по сайту из списка передаваемых объектов?

Как реализовать поиск по сайту из списка передаваемых объектов?

Необходим поиск по сайту в формеФорма состоит из нескольких текстовых полей и 2-х полей с выбором объектов (Пунктов назначения и отправления,...

120
Не добавляет File в список

Не добавляет File в список

Потому что, если myList - изначально пустой, в него никогда ничего не добавится

111
Помогите разобраться с in app billing

Помогите разобраться с in app billing

Пытаюсь встроить внутреннюю покупку в приложениеВ общем по нажатии пункта меню из главного активити открывается DialogFragment в котором есть...

161