使用JPA CriteriaBuilder API 将LocalDate字段(例如“ 2017-09-27”)保存到mySQL Date列时,结果会有所不同(例如“ 2017-09-26”)。
我已经验证我的数据库的时区设置为UTC SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP),结果是“ 00:00:00”。
我在本地测试这一点,我有GMT + 2的时区,所以我怀疑的是,当发生转换,从LocalDate到Date,被扣除生产要求的日期之前的日期1天第2小时(假设LocalDate领域,如没有时间信息的结果将被视为00:00:00。
在这种情况下保存LocalDates的最佳方法是什么?我是否应该按照这里的建议/sf/answers/2082610281/并将所有LocalDate字段显式设置为UTC或类似内容?
我进行了测试,以查看将它们转换为代码时会发生什么,并得到以下结果:
Date convertedDate = Date.valueOf(localDate);
Run Code Online (Sandbox Code Playgroud)
编辑
这是我用来检索数据的代码示例,其中也发生了奇数日期更改。如果我要求提供数据2017-06-27,我将收到的结果2017-06-26。
CriteriaBuilder criteriaBuilder = sessionFactory.getCriteriaBuilder();
CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(HorseAndTrailerRequest.class);
Root<HorseAndTrailerRequest> criteria = criteriaQuery.from(HorseAndTrailerRequest.class);
ParameterExpression<LocalDate> effectiveDateParameter = criteriaBuilder.parameter(LocalDate.class);
criteriaQuery.select(criteria)
.where(
criteriaBuilder.equal(criteria.get("effectiveDate"), effectiveDateParameter)
);
TypedQuery<HorseAndTrailerRequest> query = sessionFactory.getCurrentSession().createQuery(criteriaQuery);
query.setParameter(effectiveDateParameter, date);
return query.getResultList();
Run Code Online (Sandbox Code Playgroud) 我们在应用程序的根目录中使用MaterialTopTabNavigator( https://reactnavigation.org/docs/en/material-top-tab-navigator.html )。根据 react-navigation 文档,默认情况下应该有一个 SafeAreaView 应用于 TabNavigator。
它似乎只是将插图应用于屏幕顶部,因此(或者我只能假设),底部没有应用填充,这导致 iPhoneX 等手机和其他较大的设备有重叠。
根据 React-Navigation 文档,应该有一个tabBarOptions配置允许您覆盖( )的forceInset道具。但是,在确保我们安装了最新的 react-navigation 包后,无处可寻。SafeAreaViewsafeAreaInsetsafeAreaInset
有没有办法将插图直接应用于 MaterialTopTabNavigator?
我们的 MainNavigator 如下所示:
const MainNavigator = createMaterialTopTabNavigator(
{
Group: {
screen: GroupStack,
navigationOptions: {
tabBarIcon: () => (
<Icon name={'group-work'} color={'#FFF'}/>
),
},
},
Stats: {
screen: StatisticsStack,
navigationOptions: {
tabBarIcon: () => (
<Icon name={'insert-chart'} color={'#FFF'}/>
),
},
},
GroupRoundsTab: {
screen: GroupRoundStack,
navigationOptions: {
tabBarIcon: () => (
<Icon …Run Code Online (Sandbox Code Playgroud)