Hibernate:向mysql数据库添加一个日期属性,它会像前一天一样插入数据库

Hibernate:向mysql数据库添加一个日期属性,它会像前一天一样插入数据库,mysql,sql,hibernate,jpa,spring-data-jpa,Mysql,Sql,Hibernate,Jpa,Spring Data Jpa,所以我插入的日期(在另一个对象中)是2018/04/26,从字符串中解析出来。在我通过调试保存它之前,我可以看到它是正确的,但是当我从数据库中请求它时,它显示为2018/04/25。知道这是怎么回事吗?数据库是Amazon Web Services MySql RDS 这是我的schedule类,里面是DateActiveScheduleItems的列表,其中包含一个date属性 **Date date1= new SimpleDateFormat("yyyy/MM/dd").parse(su

所以我插入的日期(在另一个对象中)是2018/04/26,从字符串中解析出来。在我通过调试保存它之前,我可以看到它是正确的,但是当我从数据库中请求它时,它显示为2018/04/25。知道这是怎么回事吗?数据库是Amazon Web Services MySql RDS

这是我的schedule类,里面是DateActiveScheduleItems的列表,其中包含一个date属性

**Date date1=  new SimpleDateFormat("yyyy/MM/dd").parse(suppliedString)**
时间表

@Entity
public class Schedule {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToOne
@JoinColumn(name = "user_id")
private User user;

@ManyToOne
@JoinColumn(name = "usergroup_id")
private UserGroup userGroup;

private String description;


private boolean master;//is this a schedule for all supervalus(true) or one supervalu(false)

@OneToMany(mappedBy = "schedule",cascade = CascadeType.ALL)
private List<DateActiveScheduleItem> dateActiveScheduleItems = new ArrayList<>();

@OneToMany(mappedBy = "schedule",cascade = CascadeType.PERSIST)
private List<MusicScheduleItem> musicScheduleItems = new ArrayList<>();

@OneToMany(mappedBy = "schedule",cascade = CascadeType.PERSIST)
private List<AdvertisementScheduleItem> advertisementScheduleItems = new ArrayList<>();

@Basic
@Temporal(TemporalType.DATE)
private java.util.Date dateAdded;}
我正在使用hibernate Crudepository中的.save()方法保存对象

奇怪的是,在我的日程表中,我设置为“现在”的“dateadded”属性插入正确,我初始化的属性略有不同。也许我可以尝试用这种方式初始化dateactiveitem的日期,但不确定如何初始化

        Calendar now = Calendar.getInstance();
    schedule.setDateAdded(now.getTime());
可能是服务器时区? 检查下面的线程-他有同样的问题

可能是服务器时区? 检查下面的线程-他有同样的问题


我试着像他的那样修改我的jdbc url,但不幸的是没有成功。我在OPI中编辑了更多细节。我试着像他的那样修改我的jdbc url,但不幸的是没有成功。我在OP中编辑了更多细节
        Calendar now = Calendar.getInstance();
    schedule.setDateAdded(now.getTime());