我一直试图将“ 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中。
有人可以帮助我理解为什么吗?我的要求是将具有相同偏移量的相同日期保存在数据库中,并以相同的偏移量进行检索。