Java时间莫名加8小时,已解决

数据库中存储的是UTC时间,查询数据时,从数据库返回的是一个时间戳,通过Java的Date来接收这个这个时间戳,会把时间按照服务器所在时区转化时间,所以就会造成java代码拿到的时间比数据库中显示的时间多8小时,这是因为Java会按照本地时区转化为本地的时间。所以时间戳是对的,但是数据库时区跟服务器所在地时区不一样,所以才会造成这种情况,这就要在查询数据时处理好就行了,比如把查询的时间向前提9小时。可以多用convert_tz()函数。

你可能感兴趣的:(java,mysql)