使用不同的偏移量将OffsetDateTime保存在Oracle DB中

时间:2019-03-22 11:10:21

标签: java hibernate spring-data-jpa

我一直试图将“ yyyy-MM-dd'T'HH:mm:ss.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",但是当我尝试使用名称从数据库中检索对象时,却得到了{{ 1}}用于同一对象。不知道为什么这样做,如果有人可以帮助的话。我将offsetDatetime存储在数据类型为+5:30的oracle DB中。

有人可以帮助我理解为什么吗?我的要求是将具有相同偏移量的相同日期保存在数据库中,并以相同的偏移量进行检索。

0 个答案:

没有答案