Получение смещения +/- часа из SQL datetimeoffsetJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Получение смещения +/- часа из SQL datetimeoffset

Сообщение Anonymous »

Я пытаюсь проанализировать смещение даты и времени. Это из столбца таблицы базы данных SQL Server, созданного как datetimeoffset, длина = 10, точность = 34, масштаб = 7.
Пример из одной из записей: 2024-07-16 22: 30:00.0000000 -04:00
В этом случае я хотел бы вернуть -4 часа, а также преобразовать это в местное время пользователя.
К сожалению, я не могу использовать для этого T-SQL. нравиться (

Код: Выделить всё

datename(tz, value
)
У меня есть следующее:

Код: Выделить всё

import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class Main {
public static void main(String[] args) throws Exception {
DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss:SSS z");

//Date string with zone information
//String dateString = "08/03/2019T16:20:17:717 UTC+05:30";
String dateString = "2024-07-16 22:30:00.0000000 -04:00";

//Instance with given zone
ZonedDateTime zdtInstanceAtOffset = ZonedDateTime.parse(dateString, DATE_TIME_FORMATTER);

//Instance in UTC
ZonedDateTime zdtInstanceAtUTC = zdtInstanceAtOffset.withZoneSameInstant(ZoneOffset.UTC);

//Formatting to string
String dateStringInUTC = zdtInstanceAtUTC.format(DATE_TIME_FORMATTER);

System.out.println("Hello world!");

System.out.println(zdtInstanceAtOffset);
System.out.println(zdtInstanceAtUTC);
System.out.println(dateStringInUTC);

//Convert ZonedDateTime to instant which is in UTC
System.out.println(zdtInstanceAtOffset.toInstant());
}
}
Я получаю эту ошибку:

Исключение в потоке «main» java.time.format.DateTimeParseException: Text ' 2024-09-17 00:00:00.0000000 -04:00' не удалось проанализировать по индексу 2

Есть предложения?

Подробнее здесь: https://stackoverflow.com/questions/787 ... timeoffset
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»