OffsetDateTime сохраняется с другим смещением в оракуле БД - PullRequest
0 голосов
/ 22 марта 2019

Я пытался преобразовать дату в формате "гггг-ММ-дд'ТЧЧ: мм: сс.SSSXXX" в OffsetDateTime. Ниже приведен тестовый пример, который я написал.

@RunWith(SpringRunner.class)
@SpringBootTest
public class DateDemoServiceImplTest {

@Autowired
private DateDemoService dateDemoService;

private final String DATE_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";

@org.junit.Before
public void setUp() {
 System.out.println(dateDemoService);
}

@Test
public void testSavingOfDate() {

 DateModel createdDateModel = createDateModel("2019-03-21T06:43:56.235+11:00", "2011-07-04T17:19:56.235+07:00",
   "AD-1");

 String str1 = createdDateModel.getOffSetDateTime().getOffset().toString();
 dateDemoService.saveDate(createdDateModel);

 DateModel savedDateModel = dateDemoService.getDateByName("AD-1");

 String str2 = savedDateModel.getOffSetDateTime().getOffset().toString();

 System.out.println(str1);
 System.out.println(str2);
}

private DateModel createDateModel(String offSetDateTimeString, String zonedDateTimeString, String name) {
 DateModel dateModel = new DateModel();
 dateModel.setOffSetDateTime(
   OffsetDateTime.parse(offSetDateTimeString, DateTimeFormatter.ofPattern(DATE_PATTERN)));
 dateModel.setZonedDateTime(ZonedDateTime.parse(zonedDateTimeString, DateTimeFormatter.ofPattern(DATE_PATTERN)));
 dateModel.setName(name);
 return dateModel;
}

}

Я получаю +11:00 перед сохранением объекта DateModel для даты "2019-03-21T06:43:56.235+11:00", но когда я пытаюсь извлечь объект из БД по имени, я получаю другое смещение +5:30 для того же объекта. Не уверен, почему так, если кто-то может помочь. Я храню offsetDatetime в Oracle Oracle с типом данных TIMESTAMP WITH TIME ZONE.

Может кто-нибудь помочь мне понять, почему так? Мое требование - сохранить ту же дату с тем же смещением в БД и извлечь ее с тем же смещением.

...