Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我从mysql检索时间时,时间延迟了六个小时_Java_Mysql_Hibernate_Spring Boot_Jpa - Fatal编程技术网

Java 当我从mysql检索时间时,时间延迟了六个小时

Java 当我从mysql检索时间时,时间延迟了六个小时,java,mysql,hibernate,spring-boot,jpa,Java,Mysql,Hibernate,Spring Boot,Jpa,我已经使用hibernate JPA在MySQL中插入了日期列,插入的日期和时间都是正确的,但是当我在java代码中检索该列时,它给了我六个小时的延迟时间 这是我的a.java型号: import java.util.Date; @CreationTimestamp @Column(name = "Created_at", updatable = false, nullable = true) private Date Created_at; public Date getCreated_at(

我已经使用hibernate JPA在MySQL中插入了日期列,插入的日期和时间都是正确的,但是当我在java代码中检索该列时,它给了我六个小时的延迟时间

这是我的a.java型号:

import java.util.Date;
@CreationTimestamp
@Column(name = "Created_at", updatable = false, nullable = true)
private Date Created_at;
public Date getCreated_at() {
        return Created_at;
    }
public void setCreated_at(Date created_at) {
        Created_at = created_at;
    }
TimeZone tz = c.getTimeZone();
Calendar c2 = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss z");
System.out.println(sdf.format(c2.getTime()));
System.out.println("Current TimeZone is : " + tz.getDisplayName());
这是我的存储库代码:

@Repository
@Transactional
public interface abcRepository extends JpaRepository<abc, String> {

@Query(value = "select Created_at from tbl where UserId =:UserId", nativeQuery = true)
    public List<Object[]> getList(@Param("UserId")String walletUserId);
}
输出:

import java.util.Date;
@CreationTimestamp
@Column(name = "Created_at", updatable = false, nullable = true)
private Date Created_at;
public Date getCreated_at() {
        return Created_at;
    }
public void setCreated_at(Date created_at) {
        Created_at = created_at;
    }
TimeZone tz = c.getTimeZone();
Calendar c2 = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss z");
System.out.println(sdf.format(c2.getTime()));
System.out.println("Current TimeZone is : " + tz.getDisplayName());
  • 2019年9月4日05:24:33 UTC
  • 当前时区为:协调通用 时间
在mysql中,我尝试过:

SELECT @@global.time_zone, @@session.time_zone;
输出


mysql的时区是IST,并且采用utc格式,所以我在代码中将时区更改为IST


mysql的时区是IST,并且采用utc格式,所以我在代码中将时区更改为IST


您的时区是什么?我打赌现在是UTC前6小时……我已经编辑了代码,请检查,告诉我哪里错了,这会很有帮助@Stephency您所在的时区与服务器所在的时区有差异吗?您的windows时钟的时区是什么?服务器windows时钟的时区是什么?或者,插入值的程序是否不知道/不知道服务器正在考虑/不知道的时区?我们看不到任何实际生成日期值并将其插入inIt的代码,这表明您正在数据库中存储UTC时间。这很好。但我猜你是在显示它,就好像它是当地时间一样。这可能会有帮助:是的,我认为这就是问题所在,但我不知道如何检查或设置它@CaiusJardWhat is your timezone?我打赌现在是UTC前6小时……我已经编辑了代码,请检查,告诉我哪里错了,这会很有帮助@Stephency您所在的时区与服务器所在的时区有差异吗?您的windows时钟的时区是什么?服务器windows时钟的时区是什么?或者,插入值的程序是否不知道/不知道服务器正在考虑/不知道的时区?我们看不到任何实际生成日期值并将其插入inIt的代码,这表明您正在数据库中存储UTC时间。这很好。但我猜你是在显示它,就好像它是当地时间一样。这可能会有帮助:是的,我认为这就是问题所在,但我不知道如何检查或设置@CaiusJard