Я пытался преобразовать дату в формате "гггг-ММ-дд'ТЧЧ: мм: сс.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
.
Может кто-нибудь помочь мне понять, почему так? Мое требование - сохранить ту же дату с тем же смещением в БД и извлечь ее с тем же смещением.